网站首页 文章专栏 php-fpm的3种工作模式
php-fpm的3种工作模式
编辑时间:2022-12-15 10:56:01 作者:Echosong 浏览量:766

php-fpm的3种工作模式

  1. dynamic(动态模式)

  2. ondemand 

  3. static 静态模式

 这里着重说一下 dynamic 和 ondemand 模式。

先来解释几个参数:

  • pm.start_servers 动态模式下是开始时的进程数。

  • pm.min_spare_servers  闲置状态时最小进程数

  • pm.max_spare_servers  闲置状态时最大进程数

  • pm.max_children       最大进程数

  • pm.process_idle_timeout  进程超过时间会被杀掉,单位为s.


 dynamic是动态的, 系统默认选项, 系统为了最大优化服务器响应的模式

 ondemand 特点是 不会有闲置进程,每个进程超过了process_idle_timeout就会被kill掉。


 下面做了一个ab压力测试做2个实验

1. 先用dynamic和ondemand模式看下max_children的参数。

  max_children 为默认35  如下图

                         max_children 设置为8   如下图

                         max_children的作用是限制最大进程数。

2. 接着用ondemand模式和dynamic模式下的不同处。

1>.  执行 ab测试。

                       ab -c 20 -n 1000 http://xxx/   

2>. ps -ef|grep php

                    dynamic  max_spare_servers 设为 16 ,process_idle_timeout设为12 。下图1

                    ondemand    max_spare_servers 设为 16,process_idle_timeout设为12 。下图2 


可以说明 在并发量稍大的情况下, **dynamic**模式下,测试结束后,仍有max_spare_servers个限制进程。**ondemand**模式下, 只剩master进程。

在高并发请求时,比如场景为秒杀的情况下。  dynamic模式在高峰期后会很很多闲置进程造成了浪费。  而ondemand则会因为时间限制,对某些响应时间长的进程会资源支持不到。



来说两句吧
最新评论
  • yughj 2021-08-29 22:43:45
    fghnfg