lighttpd: バックエンドが過負荷 + fcgi-server が再有効化 + すべてのハンドラがダウン

lighttpd: バックエンドが過負荷 + fcgi-server が再有効化 + すべてのハンドラがダウン

PHP-CGI を使用した標準の lighttpd デプロイメントがあり、エラー ログに次のような内容が大量に出力されています。クライアントに 500 を返し続けているため、大きな問題が発生しています。

2012-10-14 14:28:38: (mod_fastcgi.c.3001) backend is overloaded; we'll disable it for 1 seconds and send the request to another backend instead: reconnects: 0 load: 36 
2012-10-14 14:28:38: (mod_fastcgi.c.2764) fcgi-server re-enabled:  0 /tmp/php-7735.socket 
2012-10-14 14:28:39: (mod_fastcgi.c.2764) fcgi-server re-enabled:  0 /tmp/php-7735.socket 
2012-10-14 14:28:40: (mod_fastcgi.c.3001) backend is overloaded; we'll disable it for 1 seconds and send the request to another backend instead: reconnects: 0 load: 37 
2012-10-14 14:28:40: (mod_fastcgi.c.2764) fcgi-server re-enabled:  0 /tmp/php-7735.socket 
2012-10-14 14:28:41: (mod_fastcgi.c.3001) backend is overloaded; we'll disable it for 1 seconds and send the request to another backend instead: reconnects: 0 load: 57 
2012-10-14 14:28:41: (mod_fastcgi.c.3001) backend is overloaded; we'll disable it for 1 seconds and send the request to another backend instead: reconnects: 0 load: 57 
2012-10-14 14:28:42: (mod_fastcgi.c.3597) all handlers for /index.php? on .php are down. 

何が起こっているのか、誰か手がかりを持っていますか? すべての PHP および lighttpd 関連プロセスを再起動しましたが、問題は解決しませんでした。結局、ボックス全体を再起動したところ、問題はなくなりましたが、後で再発するのではないかと心配しています...

一般的に、当社の展開は長い間順調に進んでおり、このような事態が発生したのは今回が初めてです。

答え1

これは基本的に、すべての PHP プロセスがリクエストの処理でビジー状態であり、新しい受信リクエストを処理するために使用できる空き PHP プロセスがないことを意味します。これにより、500 エラーが発生します。

通常、これは実行中の PHP コードが遅く、PHP プロセスを圧迫していることを意味します。遅いクエリが原因であるかどうかを確認するには、mysql スロー ログを有効にして、APC などの PHP オペコード キャッシュを試して、速度を少し上げてください。

関連情報