PHP-FPM高并发参数设置
针对PHP-FPM高并发参数设置,以下是关键配置建议和优化方向:
一、进程管理配置
进程模式选择
推荐
pm = static
(静态模式),固定进程数避免动态调整开销若选择动态模式(
pm = dynamic
),需合理设置以下参数:
pm.max_children = 50 # 最大子进程数 pm.start_servers = 5 # 启动进程数 pm.min_spare_servers = 5 # 最小空闲进程 pm.max_spare_servers = 35 # 最大空闲进程
动态模式适合流量波动较大的场景
进程数计算
静态模式下,
pm.max_children
建议值为:内存总量(MB) / 单进程内存消耗(MB)
单进程内存可通过
pm.status
页面观察,通常20-30MB/进程
二、性能与稳定性参数
请求超时控制
request_terminate_timeout = 30s
(避免长耗时请求阻塞进程)pm.max_requests = 1000
(单个进程处理请求数上限,预防内存泄漏)Socket优化
listen.backlog = -1 # 不限制等待队列 listen.mode = 0666 # Socket权限 listen.owner = www # 运行用户
配合Nginx需确保
fastcgi_pass
指向正确Socket路径
三、系统级配合优化
Linux内核调整
增加文件句柄限制:
ulimit -n 65535
TCP参数优化(如增大
net.ipv4.tcp_max_syn_backlog
)缓存与异步方案
启用OPcache加速PHP脚本
结合Redis/Memcached减少数据库压力
完整配置示例(www.conf)
[www]
pm = static
pm.max_children = 100
request_terminate_timeout = 30s
pm.max_requests = 1000
listen.backlog = -1
listen.mode = 0666
slowlog = /var/log/php-fpm.slow.log