最高の PHP-FPM 構成 – 簡単でシンプルな計算。 PHP-FPM は、PHP の代替となる FastCGI プロセス マネージャーです。 PHP-FPM は、さまざまな PHP バージョンなどを使用するさまざまなユーザー向けにプール設定を簡単に調整することで、高度に構成可能です。
このガイドでは、簡単な計算を使用して、以下にリストされているいくつかのエラーを防ぐための最適な PHP-FPM 構成方法を学習します。
1. server reached pm.max_children setting, consider raising it 2. seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)
ステップ 1:サーバーの仕様
まず、サーバーの仕様を書き留めます。 CPU コアと RAM サイズ。
たとえば、このガイドでは、2vCPU と 16 GB RAM があると仮定します。
次に、PHP 処理に割り当てることができるメモリの量を決定します。 PHP 処理に割り当てることができる 16 GB の RAM のうち、約 10 GB の RAM を想定できます。
ステップ 2:各 PHP-FPM プロセスが消費する RAM の量
次のコマンドを実行して、実行中の PHP-FPM プロセスで消費される平均メモリを確認できます。
ps -ylC php-fpm7.4 --sort:rss
PHP のバージョンをアプリケーションで使用されているものに置き換えます。
以下のような出力が得られます。

RSS の下の値に注意してください 桁。これは、各 PHP-FPM プロセスで使用されるメモリです。
ここに約 20MB あります PHP-FPM の子プロセスごとに平均して RAM が使用されます。
ステップ 3:PHP-FPM の子の値を計算する
デフォルトでは pm
値は dynamic
に設定されます であるため、予備サーバーの最小数と最大数、および子サーバーの最大数を構成する必要があります。
pm
を変更します 値を ondemand
に 需要に応じて自動的に予備サーバーが作成されます。
pm = ondemand
これで、サーバーの仕様に従ってアプリケーションを実行するために作成できる子プロセスの量を計算できます。
10GB を割り当てようとしているため PHP-FPM 処理用の RAM。前のステップのコマンドを実行すると、平均値 20MB が見つかりました
PHP-FPM で使用できる最大 RAM / 各子が消費する RAM =PHP-FPM の子の最大値
つまり 10000 /20 =500 .サーバーの仕様に応じて、最大 500 個の PHP-FPM の子を使用できます。したがって、PHP-FPM 構成は…
pm.max_children = 500
サーバー上で PHP-FPM をスムーズに実行するには、これら 2 つの値を調整する必要があります。
最大リクエスト数を 500 に設定することもできます pm.max_requests
のコメントを外すだけで .これは、サード パーティのライブラリにメモリ リークがある場合に役立ちます。
最終的な構成は次のようになります。
pm = ondemand pm.max_children = 500 pm.max_requests = 500
情報技術の専門家として働く役割に備える Linux オペレーティング システムで
結論
これで、簡単な計算を使用して、サーバーの仕様に従って PHP-FPM 値を構成する方法を学びました。
御時間ありがとうございます。問題やフィードバックに直面した場合は、下にコメントを残してください。