一:首先介绍PHP-FPM 的三种模式
首先看php配置文件中的说明。
(1)pm=static
始终保持固定数量的worker进程数,由pm.max_children决定,不会动态扩容。
配置项要求
1、pm.max_children> 0 必须配置,且只有这一个参数生效
优缺点
如果配置成static,只需要考虑max_children的数量,数量取决于cpu的个数和应用的响应时间,
(2)pm=dynamic
php-fpm启动时,会初始启动一些worker,初始启动worker数决定于pm.max_children的值。在运行过程中动态调整worker数量,worker的数量受限于pm.max_children配置,同时受限全局配置process.max。
1秒定时器作用,检查空闲worker数量,按照一定策略动态调整worker数量,增加或减少。增加时,worker最大数量<=max_children· <=全局process.max;减少时,只有idle >pm.max_spare_servers时才会关闭一个空闲worker。
优缺点
优点:动态扩容,不浪费系统资源
缺点:如果所有worker都在工作,新的请求到来只能等待master在1秒定时器内