502 Bad Gateway が発生し、php-fpm が CPU を 100% 使用しています

502 Bad Gateway が発生し、php-fpm が CPU を 100% 使用しています

さて、昨夜午前 2 時頃、私のサーバーの 1 つで CPU 使用率が 100% に上昇しました。今朝確認すると、5 つの php-fpm プロセスが合計で約 100% の CPU を占有していました。サーバーを再起動しましたが、サーバーが復帰するたびに php-fpm プロセスが再び開始され、100% の CPU を占有します。

これは Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-32-generic x86_64) サーバーです。すべてのソフトウェアを更新しましたが、原因に関する情報がまったく得られません。

明らかに、この問題により、サーバー上でホストされている Web サイトがオフラインになり、常に 502 Bad Gateway または 504 Gateway Time-out エラーが表示されます...

誰かがこの問題を解決するのを手伝ってくれることを願っています。

まったく同じ設定のサーバーが他に 3 台ありますが、これらのサーバーではこれらの問題は発生していません。

編集1: NewRelic を見ると、問題が発生し始めたのとほぼ同時に、ネットワーク タブの「1 秒あたりのパケット数」が大幅に増加していることがわかります。これは、問題と何らかの関係があるに違いありません...

答え1

PHP-FPM でも同様の問題があり、トラフィックが少ない夜間でも CPU を 100% 使用していました。

PHP-FPM 構成ファイルを少し最適化する必要があります。次のエントリが存在することを確認してください:-

pm = オンデマンド pm.max_children = 2 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3

オンデマンドでない場合は、オンデマンドに変更してください。そうしないと、PHP-FPM は大量の CPU リソースを消費しようとします。オンデマンドでは、必要に応じてより多くのプロセスを開始します。

PHP-FPM の設定ファイルは次の場所にあります:-

php5/fpm/php-fpm.conf に次のように記述します。

pool.d/www.conf に設定されたプールもあります。

これらのファイルの両方のエントリを確認し、それに応じて上記の設定を最適化し、PHP-FPM を再起動します。

関連情報