调整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),建议在测试环境验证后再应用到生产环境。