调整进程管理参数
pm.max_children 为服务器内存可承载的进程数(公式:(总内存-系统预留-其他服务内存)÷单个进程内存)。pm.start_servers=CPU核心数×2,pm.min_spare_servers=CPU核心数,pm.max_spare_servers=CPU核心数×4,并搭配 pm.process_idle_timeout=10-30s 控制空闲进程回收。pm.max_children 为保守值(如20-50),pm.process_idle_timeout=60s 以上。pm.max_requests=500-1000,防止进程内存泄漏,定期重启。优化PHP内存配置
php.ini 中设置 memory_limit,普通请求建议128M,大内存场景(如图片处理)可设256M。opcache.enable=1,opcache.memory_consumption=64-128M,opcache.max_accelerated_files=4000。系统级优化
php-fpm.conf 中设置 rlimit_files=65535,并在系统级通过 ulimit -n 65535 或 /etc/security/limits.conf 永久生效。top/htop 监控内存使用,通过 ps -eo %mem,rss,vsize,cmd | grep php-fpm 排查异常进程;开启FPM状态页(pm.status_path=/status)实时查看进程状态。代码与架构优化
unset(),避免循环引用),可通过Xdebug分析内存使用。硬件与扩展
操作步骤:修改配置后,重启PHP-FPM服务:sudo systemctl restart php{版本}-fpm,并通过监控工具验证优化效果。
参考来源: