Processos Nginx / php-fpm caem em sono ininterrupto

2

Recebi um aviso crítico nagios sobre um servidor, e quando eu chequei ps -aux i descobri que todos nginx (php-fpm) estão em Uninterruptible sleep

www-data  1330  0.4  0.3 299992 108560 ?       D    16:06   0:16 php-fpm: pool www
www-data  1338  0.4  0.2 254728 92728 ?        D    16:06   0:16 php-fpm: pool www
www-data  1346  0.4  0.3 293544 100272 ?       D    16:06   0:17 php-fpm: pool www
www-data  1356  0.7  0.3 302504 101532 ?       D    16:06   0:29 php-fpm: pool www
www-data  1357  0.3  0.2 270672 85952 ?        D    16:06   0:13 php-fpm: pool www
....

e eu estava preso com isso e não conseguia nem reiniciar o nginx. e finalmente eu reinicio o servidor para corrigir o problema!
embora eu tenha isso em /etc/php5/fpm/php.ini

emergency_restart_threshold=10
emergency_restart_interval=1m
process_control_timeout=10s

que significa que o php5-fpm deve reiniciar em tais casos, mas isso não aconteceu !!
Alguma idéia do que pode fazer com que esses processos entrem em estado de sono ininterrupto e como evitar esse caso no futuro?
Obrigado pela sua ajuda

    
por Alaa Alomari 19.06.2012 / 08:21

1 resposta

1

Enquanto D em top significa sono ininterrupto, acho mais fácil pensar em D for Disk. O processo está esperando no kernel para voltar a ele com algo, e 95% do tempo isso está lendo de um disco.

O fato de ser um sono ininterrupto é o motivo pelo qual o php-fpm não pode se reiniciar sozinho.

Portanto, nesse caso, você desejará verificar seus discos, primeiro com fsck -f /dev/mapper/VG-LV no modo de usuário único (se for um servidor dedicado remoto ou VPS, será necessário usar um console KVM remoto para isso) e, em seguida, leia os dados SMART com smartctl -a /dev/sd? (se eles não estiverem em uma matriz RAID de hardware; se for RAID de hardware, use a ferramenta fornecida pelo fornecedor) para ver se um dos seus discos está indo mal.

    
por 10.07.2012 / 06:08