继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

8、Php-Fpm创建进程说明

Iamasb
关注TA
已关注
手记 25
粉丝 4
获赞 37

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,并查看进程关系

    https://img4.mukewang.com/5cd438c60001f6c812300104.jpg

    即当进程池为动态创建子进程时,默认启动的子进程数为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,并查看进程关系

    https://img4.mukewang.com/5cd438d90001ac1412360164.jpg

    即当进程池为静态创建子进程时,默认启动的子进程数为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,并查看进程关系

    https://img4.mukewang.com/5cd438f40001c65812270168.jpg

    即当前创建的子进程数为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和进程池所配置的进程数的最小值为主。


打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP