一、进程管理参数优化
进程管理是PHP-FPM性能优化的核心,需根据服务器资源(内存、CPU)和负载模式调整:
dynamic模式(动态调整进程数),适合大多数高并发场景;若负载稳定且可控,也可选择static模式(固定进程数),避免动态调整的开销。ondemand模式(按需启动)适合低流量场景,但响应速度较慢。(服务器总内存 - 系统预留内存) / 单个PHP进程内存占用(单个进程内存可通过memory_limit估算,如memory_limit=128M时,约占总内存的1/8~1/4)。例如,16GB内存服务器可设置pm.max_children=50~100。start_servers为启动时的初始进程数,建议设为CPU核心数的4倍(如4核CPU设为16);min_spare_servers(最小空闲进程)和max_spare_servers(最大空闲进程)需平衡资源利用率与响应速度,例如min_spare_servers=5、max_spare_servers=20。二、OPcache加速配置
OPcache是PHP代码缓存的关键扩展,可显著减少脚本编译时间:
php.ini中设置opcache.enable=1。opcache.memory_consumption设置为服务器内存的1/8~1/4(如8GB内存设为1024M),避免占用过多内存。opcache.max_accelerated_files设置为实际使用的PHP文件数量(可通过find /path/to/php/files -type f -name "*.php" | wc -l统计),建议设为10000~20000。opcache.revalidate_freq设置为60秒(默认),即每60秒检查一次文件修改时间,平衡性能与代码更新及时性。三、系统参数调优
调整Linux内核参数,提升PHP-FPM的I/O和网络性能:
vm.swappiness设置为10~20(默认60),降低系统使用交换分区的概率,提高内存利用率。fs.file-max设置为100000以上(默认通常为1024),满足高并发下的文件操作需求;同时调整php-fpm.conf中的rlimit_files(如rlimit_files = 100000)。net.core.somaxconn设置为65535(默认通常为128),增加服务器套接字的最大连接队列长度,避免连接被拒绝。四、缓存与I/O优化
PDO::ATTR_PERSISTENT=1),减少数据库连接建立的开销;同时优化数据库查询(如添加索引、减少SELECT *)。五、监控与调优
php-fpm.conf中设置slowlog = /var/log/php-fpm/www-slow.log和request_slowlog_timeout = 5s(超过5秒的请求记录到慢日志),通过分析慢日志定位性能瓶颈(如慢查询、复杂逻辑)。pm.status_path = /status,通过Nginx或Apache暴露状态页面(如location ~ ^/(status|ping)$ { ... }),实时查看PHP-FPM的进程数、请求处理时间、内存使用等指标。六、代码与架构优化