以下是Ubuntu中PHP-FPM性能调优的核心方法:
优化进程管理配置
static(固定进程,适合内存充足、流量稳定场景)、dynamic(动态调整,适合流量波动场景)、ondemand(按需创建,适合低负载场景)。pm.max_children:根据内存计算(总内存-预留内存)/单个进程内存,避免内存耗尽。pm.start_servers:建议设置为CPU核心数×2,快速响应请求。pm.min/max_spare_servers:分别设置为CPU核心数的2-4倍,平衡资源利用率。pm.max_requests:设置为500-1000,防止内存泄漏。启用并优化OPcache
opcache.enable=1,opcache.memory_consumption=128-256M(根据内存调整),opcache.max_accelerated_files=32768(覆盖项目文件数)。opcache.preload预加载常用文件,进一步提升速度。系统级优化
ulimit -n 65535/etc/security/limits.conf,设置* soft nofile 65535。net.core.somaxconn(监听队列长度),匹配PHP-FPM的listen_backlog。vm.swappiness=0(避免频繁使用Swap)。连接与超时优化
listen=/run/php-fpm.sock,并设置listen.owner/group=www-data。fastcgi_read_timeout=10s对应request_terminate_timeout=10s)。监控与持续优化
pm.status_path=/php-fpm-status,通过Nginx暴露监控接口,查看活跃进程、队列长度等指标。slowlog=/var/log/php-fpm/slow.log),定位低效代码或SQL。代码与缓存优化
操作建议:修改配置后需重启PHP-FPM(sudo systemctl restart php{version}-fpm),优先在测试环境验证效果,再应用到生产环境。
参考来源: