ubuntu

PHP-FPM在Ubuntu上的内存优化技巧

小樊
45
2025-08-17 16:19:10
栏目: 编程语言

以下是PHP-FPM在Ubuntu上的内存优化技巧:

  1. 调整进程池参数

    • 编辑 /etc/php/{version}/fpm/pool.d/www.conf,设置 pm.max_children 为服务器内存可承受的最大进程数(建议不超过可用内存的70%)。
    • pm.start_servers 设为CPU核心数的4倍,pm.min_spare_serverspm.max_spare_servers 分别设为CPU核心数的2-4倍,平衡空闲进程占用。
    • pm.max_requests 设为500-1000,避免进程长期运行导致内存泄漏。
  2. 优化PHP配置

    • php.ini 中设置合理的 memory_limit(如128M-256M),避免单个进程占用过多内存。
    • 禁用不必要的模块(如xdebug),减少内存开销。
  3. 启用OPcache

    • php.ini 中启用OPcache并配置缓存大小(如 opcache.memory_consumption=64),缓存编译后的代码以减少内存占用。
  4. 使用高效进程管理方式

    • 尝试 pm = ondemand 模式,按需创建进程,降低内存消耗。
    • 调整 pm.process_idle_timeout 控制空闲进程存活时间,避免资源占用。
  5. 监控与调优

    • 使用 tophtopglances 监控内存使用,及时发现异常。
    • 定期分析慢日志(如通过 php-fpm-status 模块),定位内存消耗高的请求。
  6. 硬件与系统优化

    • 若内存不足,考虑升级服务器配置。
    • 确保系统内核参数(如 vm.swappiness)适合PHP-FPM运行场景。

注意:修改配置后需重启PHP-FPM服务生效,建议在测试环境验证后再部署到生产环境。

0
看了该问题的人还看了