PHP-FPM 的 pm 设定 – static, dynamic 及 ondemand


PHP-FPM 默认的 PM (process manager) 会设定为 “dynamic”, 除了 dynamic, 还有 static 及 ondemand, 以下是 PHP 官方对这些设定的解释:

pm = dynamic – the number of child processes is set dynamically based on the following directives: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
(开启的子进程会根据以下参数动态调整: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.)

pm = ondemand – the processes spawn on demand (when requested, as opposed to dynamic, where pm.start_servers are started when the service is started.
(当有需要时才会开启.)

pm = static – the number of child processes is fixed by pm.max_children.
(开启的子进程数量固定为 pm.max_children 的数值.)

如果在一台内存较充裕的服务器, pm 设定成 static 是较好的选择, 因为不需要动态检查系统的负载情况而决定开启 process, 效能会较高, 但缺点是会占用较多内存; 但如果内存较少, 例如只有 1GB 内存的 VPS, 使用 ondemand 及 dynamic 会较适合。

No Responses

Leave a Reply