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指令空闲指定的时间后将终止。好处包括减少流量低或无流量期间的内存使用量。非常适合具有间歇性负载的服务器或具有不可预测流量模式的应用程序。

适用于您的应用程序的最佳模式可能会有所不同,具体取决于服务器的可用资源、流量模式和特定应用程序特征。监控和微调设置以实现最佳性能至关重要。