Назад | Перейти на главную страницу

Процессы nginx / php-fpm проваливаются в Беспрерывный сон

Я получил критическое предупреждение nagios о сервере, и когда я проверил ps -aux я обнаружил, что все nginx (php-fpm) находятся в непрерывном сне

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
....

и я застрял с ним и даже не мог перезапустить nginx. и, наконец, я перезапускаю сервер, чтобы исправить проблему!
хотя у меня это есть в /etc/php5/fpm/php.ini

emergency_restart_threshold=10
emergency_restart_interval=1m
process_control_timeout=10s

Это означает, что в таких случаях предполагается перезапуск php5-fpm, но этого не произошло !!
любая идея о том, что может заставить эти процессы перейти в состояние непрерывного сна и как избежать такого случая в будущем?
Спасибо за вашу помощь

Пока D в top означает непрерывный сон, мне проще думать о D для Disk. Процесс ожидает, что ядро ​​вернется к нему с чем-то, и в 95% случаев это чтение с диска.

Тот факт, что это непрерывный сон, является причиной того, что php-fpm не может перезапуститься.

Итак, в этом случае вы захотите проверить свои диски, сначала с помощью fsck -f /dev/mapper/VG-LV в однопользовательском режиме (если это удаленный выделенный сервер или VPS, вам придется использовать для этого удаленную консоль KVM), затем прочитайте данные SMART с помощью smartctl -a /dev/sd? (если они не находятся в аппаратном массиве RAID; если это аппаратный RAID, используйте инструмент, предоставленный поставщиком), чтобы проверить, может ли один из ваших дисков выйти из строя.