8、Php-Fpm創建進程說明

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爲主

總結: 在全局設置了process.max大小,則進程池個數由process.max和進程池所配置的進程數的最小值爲主。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章