我收到关于服务器的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应该在这种情况下重启,但它没有!!
任何可能导致这些过程进入不间断睡眠状态的想法,以及如何在将来避免这种情况?
答案 0 :(得分:1)
不间断睡眠转换为I / O.处于此状态的进程不处理信号。因此,PHP-FPM无法重新启动处于此状态的进程。
你可能有一个糟糕的硬盘驱动器,过时/死网络挂载(nfs,cifs?)PHP脚本试图访问,或者是一个非常糟糕的I / O争用案例。
此外,这与nginx完全无关。