PHP進程管理器模式
PHP-FPM,即 PHP 的 FastCGI 進程管理器,為其工作進程提供了多種管理模式。這些模式決定 PHP-FPM 如何建立、維護和回收處理 PHP 請求的子程序。此模式是使用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指令空閒指定的時間後將終止。好處包括減少流量低或無流量期間的記憶體使用量。非常適合具有間歇性負載的伺服器或具有不可預測流量模式的應用程式。

適用於您的應用程式的最佳模式可能會有所不同,具體取決於伺服器的可用資源、流量模式和特定應用程式特徵。監控和微調設定以實現最佳效能至關重要。