php-fpm进程属于Uninterruptible sleep

时间:2012-06-20 06:01:15

标签: php ps server-load

我收到关于服务器的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。最后我重新启动服务器以解决问题!今天问题再次发生,我设法重启php5-fpm,将服务器负载从300减少到1.XX
虽然我在/etc/php5/fpm/php.ini

中有这个
emergency_restart_threshold=10
emergency_restart_interval=1m
process_control_timeout=10s

这意味着php5-fpm应该在这种情况下重启,但它没有!!
任何可能导致这些过程进入不间断睡眠状态的想法,以及如何在将来避免这种情况?

1 个答案:

答案 0 :(得分:1)

不间断睡眠转换为I / O.处于此状态的进程不处理信号。因此,PHP-FPM无法重新启动处于此状态的进程。

你可能有一个糟糕的硬盘驱动器,过时/死网络挂载(nfs,cifs?)PHP脚本试图访问,或者是一个非常糟糕的I / O争用案例。

此外,这与完全无关。