ubuntu

Ubuntu PHP-FPM内存使用优化

小樊
42
2025-08-09 12:41:42
栏目: 编程语言

Ubuntu PHP-FPM内存使用优化方法

  1. 调整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秒),防止长时间占用内存。
  2. 启用OPcache缓存

    • php.ini 中启用OPcache并配置参数:
      opcache.enable=1
      opcache.memory_consumption=64-128  # 根据内存调整缓存大小
      opcache.max_accelerated_files=4000  # 缓存文件数量
      
    • 重启PHP-FPM使配置生效。
  3. 优化PHP代码

    • 避免内存泄漏:使用 unset() 释放不再使用的变量,手动触发垃圾回收 gc_collect_cycles()
    • 禁用不必要的模块(如xdebug):在 php.ini 中注释相关扩展。
  4. 监控与调优

    • 使用 tophtopglances 监控内存使用情况,及时发现异常。
    • 分析慢日志(需先在配置中开启 slowlogrequest_slowlog_timeout),定位性能瓶颈。
  5. 硬件与架构优化

    • 若内存不足,可升级服务器配置或使用负载均衡分散流量。
    • 考虑使用动态进程管理(pm = dynamic),避免静态模式占用过多内存。

注意:修改配置后需重启PHP-FPM服务(sudo systemctl restart php{version}-fpm),建议在测试环境验证后再应用到生产环境。

0
看了该问题的人还看了