调整PHP-FPM配置
/etc/php/{version}/fpm/pool.d/www.conf
,根据服务器内存和负载调整以下参数:
pm.max_children
:设置为可用内存能承载的最大进程数(如 可用内存/单个进程内存
)。pm.start_servers
:建议设为CPU核心数的4倍。pm.min_spare_servers
/pm.max_spare_servers
:分别设为CPU核心数的2倍和4倍,控制空闲进程数量。pm.max_requests
:设为500-1000,避免进程长期运行导致内存泄漏。request_terminate_timeout
:限制脚本执行时间(如30秒),防止长时间占用内存。启用OPcache缓存
php.ini
中启用OPcache并配置参数:opcache.enable=1
opcache.memory_consumption=64-128 # 根据内存调整缓存大小
opcache.max_accelerated_files=4000 # 缓存文件数量
优化PHP代码
unset()
释放不再使用的变量,手动触发垃圾回收 gc_collect_cycles()
。php.ini
中注释相关扩展。监控与调优
top
、htop
或 glances
监控内存使用情况,及时发现异常。slowlog
和 request_slowlog_timeout
),定位性能瓶颈。硬件与架构优化
pm = dynamic
),避免静态模式占用过多内存。注意:修改配置后需重启PHP-FPM服务(sudo systemctl restart php{version}-fpm
),建议在测试环境验证后再应用到生产环境。