1、配置文件指令
1.1、全局配置指令
- process.max
master進程能夠Fork的最大FPM進程數。默認不啓用
1.2、進程池配置指令
- pm
設置進程管理器如何管理子進程。可用值:static,ondemand,dynamic。必須設置。其中:爲static時,該進程池能夠創建的子進程數爲 pm.max_children的值;爲dynamic時,該進程池啓動時能夠創建的子進程數爲pm.start_servers的值。最大值爲 pm.max_children的值
2、指令關係
即全局配置文件process.max與進程池配置文件的pm.max_children關係
2.1、默認配置
- 進程池默認配置內容
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
- 啓動php-fpm,並查看進程關係
即當進程池爲動態創建子進程時,默認啓動的子進程數爲pm.start_servers數。其值=pm.min_spare_servers+(pm.max_spare_servers-pm.min_spare_servers)/2
2.2、修改進程池爲static模式
- 配置文件內容
pm = static
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
- 啓動php-fpm,並查看進程關係
即當進程池爲靜態創建子進程時,默認啓動的子進程數爲pm.max_children數。其中如pm.start_servers、pm.min_spare_servers、pm.max_spare_servers則被忽略
2.3、修改全局和進程池配置
- 全局
process.max = 4
- 進程池配置
pm = static
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
- 啓動php-fpm,並查看進程關係
即當前創建的子進程數爲4個,而不是pm.max_children的值。按照這種的方式,分別修改全局和進程池配置。可以得到如下表的內容
全局 |
進程池 |
結果 |
process.max = 4 |
pm = static pm.max_children = 5 |
worker進程爲4個。即worker進程數以process.max爲主 |
process.max = 4 |
pm = static pm.max_children = 3 |
worker進程爲3個。即worker進程數以pm.max_children爲主 |
process.max = 4 |
pm = dynamic pm.start_servers = 2 |
worker進程爲2個。即worker進程數以pm.start_servers爲主 |
process.max = 1 |
pm = dynamic pm.start_servers = 2 |
worker進程爲1個。即worker進程數以process.max爲主 |