Nginx+PHP,PHP如何优化配置?
具体修改FPM配置文件参数:
若你的php日志出现:
WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)
那就需要调整以下参数:
max_children
*允许创建的最大子进程数
start_servers
*起始进程数(服务启动后初始进程数量)
min_spare_servers
*最小空闲进程数(清理空闲进程后的保留数量)
max_spare_servers
*最大空闲进程数(当空闲进程达到此值时清理)
宝塔面板给的建议参数为:
并发方案1G内存:
max_children:30
start_servers:5
min_spare_servers:5
max_spare_servers:20
并发方案2G内存:
max_children:50
start_servers:5
min_spare_servers:5
max_spare_servers:30
并发方案4G内存:
max_children:80
start_servers:10
min_spare_servers:10
max_spare_servers:30
并发方案8G内存:
max_children:120
start_servers:10
min_spare_servers:10
max_spare_servers:30
并发方案16G内存:
max_children:200
start_servers:15
min_spare_servers:15
max_spare_servers:50
并发方案32G内存:
max_children:300
start_servers:20
min_spare_servers:20
max_spare_servers:50
注意事项:
【最大子进程数量】越大,并发能力越强,但max_children最大不要超过5000
【内存】每个PHP子进程需要20MB左右内存,过大的max_children会导致服务器不稳定
【静态模式】始终维持设置的子进程数量,对内存开销较大,但并发能力较好
【动态模式】按设置最大空闲进程数来收回进程,内存开销小,建议小内存机器使用
【按需模式】根据访问需求自动创建进程,内存开销极小,但并发能力略差
【多PHP版本】若您安装了多个PHP版本,且都在使用,建议适当降低并发配置
【没有数据库】若没有安装mysql等数据库,建议设置2倍于推荐并发
【注意】以上为建议配置说明,线上项目复杂多样,请根据实际情况酌情调整