PHP语言中php-fpm的3种工作运行模式浅析
dynamic 动态模式)
ondemand 内存优先)
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模式下的不同处。
执行 ab测试。
ab -c 20 -n 1000 https://www.zongscan.com/
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则会因为时间限制,对某些响应时间长的进程会资源支持不到。
完
相关文章