我收到了关于服务器的 nagios 严重警告,当我检查时ps -aux
我发现所有的 nginx (php-fpm) 都处于不间断睡眠状态
www-数据 1330 0.4 0.3 299992 108560 ?D 16:06 0:16 php-fpm:池 www www-数据 1338 0.4 0.2 254728 92728 ?D 16:06 0:16 php-fpm:池 www www-数据 1346 0.4 0.3 293544 100272 ?D 16:06 0:17 php-fpm:池 www www-数据 1356 0.7 0.3 302504 101532 ?D 16:06 0:29 php-fpm:池 www www-数据 1357 0.3 0.2 270672 85952 ?D 16:06 0:13 php-fpm:池 www ....
我被它困住了,甚至无法重新启动 nginx。最后我重新启动服务器来解决问题!
虽然我在 /etc/php5/fpm/php.ini 中有这个
emergency_restart_threshold=10 emergency_restart_interval=1 米 process_control_timeout=10s
这意味着 php5-fpm 应该在这种情况下重新启动,但它没有!
知道什么可能导致这些进程进入不间断的睡眠状态,以及将来如何避免这种情况?
谢谢你的帮助
虽然 D in
top
表示不间断睡眠,但我发现将 D 视为 Disk 更容易。该进程正在等待内核返回给它一些东西,并且 95% 的时间是从磁盘读取。它是不间断睡眠的事实是 php-fpm 无法自行重启的原因。
因此,在这种情况下,您需要首先
fsck -f /dev/mapper/VG-LV
在单用户模式下检查您的磁盘(如果它是远程专用服务器或 VPS,那么您必须为此使用远程 KVM 控制台)然后读取 SMART 数据smartctl -a /dev/sd?
(如果它们不在硬件 RAID 阵列中;如果是硬件 RAID,请使用供应商提供的工具)来查看您的磁盘是否有问题。