温馨提示×

ubuntu下php-fpm内存占用过高怎么办

小樊
50
2025-06-29 12:29:01
栏目: 编程语言

当Ubuntu下的php-fpm内存占用过高时,可以采取以下步骤进行排查和解决:

查看php-fpm进程和内存占用情况

  • 使用 top 命令查看当前进程占用内存排序。
  • 使用 ps -fe grep "php-fpm" | wc -l 命令查看当前php-fpm总进程数。
  • 使用 ps -ylC php-fpm --sort:rss 命令查看当前php-fpm进程的内存占用情况及启动时间。

调整php-fpm配置文件

  • 修改进程池大小
    • pm.max_children:控制最大子进程数,根据服务器内存和CPU核心数调整。
    • pm.start_servers:设置启动时的服务器进程数。
    • pm.min_spare_serverspm.max_spare_servers:控制空闲进程数量。
  • 启用和配置OPcache
    • 启用OPcache可以显著提高PHP的执行速度,减少重复编译的次数。
    • php.ini 文件中启用opcache:
      zend_extension=opcache.so
      opcache.enable=1
      opcache.memory_consumption=128
      opcache.interned_strings_buffer=8
      opcache.max_accelerated_files=4000
      
    • 根据你的需求调整 opcache.memory_consumption 和其他相关设置。

重启php-fpm服务

修改配置文件后,使用以下命令重启php-fpm服务以应用更改:

sudo systemctl restart php{version}-fpm

{version} 替换为实际的PHP版本号,例如 php7.4-fpm

监控和日志分析

  • 定期检查php-fpm的日志文件,通常位于 /var/log/php-fpm/www-error.log,以发现潜在的性能问题或错误。

优化PHP代码

  • 检查PHP代码中是否存在内存泄漏或不必要的内存消耗,进行相应的优化。

考虑服务器资源升级

  • 如果调整配置后内存使用仍然过高,可能需要考虑升级服务器硬件配置,如增加内存。

通过上述步骤,可以有效降低php-fpm的内存使用,提高服务器的性能。在调整配置时,建议根据实际服务器的硬件资源和应用需求进行合理设置。

0