1

サーバーに関する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 は再起動するはずですが、再起動しませんでした!!
これらのプロセスが中断できないスリープ状態になる原因と、将来そのようなケースを回避する方法についてのアイデアはありますか?

4

1 に答える 1

2

中断できないスリープはI/Oに変換されます。この状態のプロセスはシグナルを処理しません。したがって、PHP-FPMは、この状態のプロセスを再開できません。

おそらく、悪いハードドライブ、古い/デッドネットワークマウント(nfs、cifs?)、PHPスクリプトがアクセスしようとしている、またはI/O競合の本当に悪いケースがあります。

また、これはとはまったく関係ありません。

于 2012-06-21T09:29:11.267 に答える