トラフィックの多い Web アプリケーションでは、ユーザーのリクエストをより適切に処理するために、通常、複数のプロセスを使用して複数のリクエストを同時に処理します。 PHP では、マルチプロセス管理に FPM (FastCGI Process Manager) を使用するのが一般的な方法です。ただし、Web サーバーのプロセスが多すぎると、大量のトラフィックを処理する際にサーバーのリソースに過度の負担がかかり、サーバーがクラッシュする可能性があります。したがって、PHP プロセス マネージャーを正しく構成することが非常に重要です。この記事では、PHP プロセスの数を正しく設定する方法について説明します。
PHP プロセスの数を構成する前に、PHP プロセス マネージャーとその仕組みを理解する必要があります。
FPM は、すべての PHP プロセスを管理でき、複数のプロセス プールを提供する PHP FastCGI マネージャーです。各プロセス プールには特定の数の PHP プロセスがあり、サーバーの CPU とメモリに基づいて指定または計算できます。
PHP ファイルに対するリクエストが行われると、Nginx または Apache はそのリクエストを FPM マネージャーに転送し、負荷分散アルゴリズムに基づいて PHP プロセスの 1 つを選択します。 PHP プロセスはコードを実行し、応答を Nginx または Apache に送り返し、最終的にクライアントに返されます。
実際の状況に応じて PHP プロセスの数を選択することが非常に重要です。プロセス数が少なすぎると高トラフィックの負荷に耐えられない可能性があり、プロセス数が多すぎるとサーバー リソースが無駄に消費されます。
サーバーが必要とする PHP プロセスの数は、次の式で見積もることができます:
max_children = ((合計 RAM - 他のプロセスが使用するメモリ) / 1 つの PHP 子プロセスによって消費されるメモリ)
このうち、
max_children は PHP 子プロセスの最大数です。
Total RAM は、サーバー上のメモリの合計量です。
他のプロセスによって使用されているメモリは、他のプロセスによって占有されているメモリの量であり、top または ps コマンドを使用して表示できます。
1 つの PHP 子プロセスによって消費されるメモリは、各 PHP プロセスのメモリ フットプリントであり、次のコマンドを使用して推定できます。
php -r 'echomemory_get_usage(true);'
これはバイト単位の整数を返します。これを MB に変換するには、その数値を 1024 x 1024 で割って、各 PHP プロセスによって消費されるメモリ量を取得します。
php.ini ファイルでプロセスの数を指定し、サーバー リソースの可用性に基づいてこれらの数を調整できます。
php.ini ファイルには、次のパラメータがあります:
pm = Dynamic
pm.max_children = 20
pm.start_servers = 2
pm。 min_spare_servers = 1
pm.max_spare_servers = 3
これらは、PHP プロセスに影響を与える重要なパラメーターです。 pm はプロセス マネージャー (ここでは動的プロセス マネージャーが使用されます)、pm.max_children は子プロセスの最大数を表します、pm.start_servers は有効になっている場合の子プロセスの数を表します、pm.min_spare_servers は予約された子プロセスの数を表します、pm .max_spare_servers は、作成できるアイドルプロセスの最大数を表します。
2 番目のステップの式に基づいて見積もりを行った後、pm.max_children を対応する値に設定し、サーバー リソースの可用性に基づいて他のパラメーターを調整します。
プロセス数を構成して設定したら、プロセスがフル稼働状態でも適切に機能していることを確認するために定期的に監視する必要があります。または軽負荷条件が実行されます。
top または htop コマンドを使用して、サーバーの実行ステータスを監視できます。これらのツールは、サーバー上のすべてのプロセスとそのリソース使用率を表示します。
プロセス数が多すぎる、または少なすぎることが判明した場合は、実際の状況に応じてプロセス数を調整し、稼働状況が改善するかどうかを観察できます。
高負荷の Web アプリケーションでは、PHP プロセスの数を正しく構成することが非常に重要です。上記の方法を使用して、サーバーに必要なプロセスの数を推定し、パラメーターを調整するための最適な戦略を決定できます。 PHP プロセスの数を定期的に監視することも、高トラフィック負荷下でアプリケーションを安定して実行するためのもう 1 つの重要な要素です。
以上がPHPプロセス数を正しく設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。