PHPプロセスマネージャーモード
PHP-FPM (PHP 用 FastCGI Process Manager) は、ワーカー プロセスにいくつかの管理モードを提供します。これらのモードは、PHP リクエストを処理する子プロセスを PHP-FPM が作成、維持、リサイクルする方法を決定します。モードはpm構成ディレクティブを使用して設定されます。

dynamic (デフォルト)
dynamicモードでは、PHP-FPM は要求に基づいて生成される子プロセスの数を動的に調整し、次のディレクティブによって制御されます。

pm.max_children同時に生存できる子の最大数
pm.start_servers起動時に作成される子の数
pm.min_spare_servers 「アイドル」状態 (処理を待機している) の子の最小数。 「アイドル」プロセスの数がこの数より少ない場合、いくつかの子プロセスが作成されます。
pm.max_spare_servers 「アイドル」状態 (処理を待機している) の子の最大数。 「アイドル」プロセスの数がこの数より大きい場合、一部の子プロセスが強制終了されます。
pm.max_spawn_rate一度に子プロセスを生成するレートの最大数

利点としては、需要に基づいて子プロセスの数を自動調整し、最適なリソース使用率を確保できることが挙げられます。これは、負荷が変動するサーバーに特に役立ちます。

static
staticモードでは、PHP-FPM は固定数の子プロセスを維持します。この数は、 pm.max_childrenディレクティブによって指定されます。子プロセスの数が一定であるため、メモリ使用量が安定するなどの利点があります。これは、負荷が安定しているサーバーに最適です。

ondemand
ondemandモードでは、起動時に子は作成されません。代わりに、PHP-FPM は、必要な場合、つまり、処理が必要な受信リクエストがある場合にのみ子プロセスを生成します。同時に生存できる子の最大数は、 pm.max_childrenディレクティブによって制御されます。プロセスは、 pm.process_idle_timeoutディレクティブによって指定された時間アイドル状態になった後に終了されます。利点としては、トラフィックが少ない、またはトラフィックがないときのメモリ使用量の削減が挙げられます。断続的な負荷がかかるサーバーや、予測できないトラフィック パターンを持つアプリケーションに最適です。

アプリケーションに最適なモードは、サーバーの利用可能なリソース、トラフィック パターン、および特定のアプリケーションの特性に基づいて異なる場合があります。最適なパフォーマンスを達成するには、設定を監視して微調整することが不可欠です。