centos

centos里php-fpm内存占用过高怎么解决

小樊
44
2025-09-13 17:14:10
栏目: 编程语言

  1. 优化PHP代码:用Xdebug等工具检查内存泄漏,避免循环引用和不必要的内存占用。
  2. 调整PHP-FPM配置
    • 修改/etc/php-fpm.d/www.conf
      • pm.max_children:根据服务器内存和CPU核心数调整(如pm = dynamic时,设为(总内存-系统预留)/单个进程内存)。
      • pm.start_servers:设为CPU核心数的2-4倍。
      • pm.min/max_spare_servers:设为CPU核心数的1-2倍。
      • pm.max_requests:设为500-1000,防止内存泄漏。
    • 进程模式选dynamic(动态调整)或ondemand(低负载按需创建)。
  3. 启用OPcache:在php.ini中启用并配置缓存大小(如opcache.memory_consumption=64M),减少脚本编译开销。
  4. 限制内存使用:在php.ini中设置memory_limit(如128M),避免单个进程占用过多内存。
  5. 监控与调优
    • top/htop监控内存占用,分析异常进程。
    • 查看PHP-FPM日志(如/var/log/php-fpm/error.log),定位内存泄漏或慢请求。
  6. 升级硬件或服务:若内存不足,考虑增加服务器内存或迁移至更高配置环境。

修改配置后需重启PHP-FPM服务:sudo systemctl restart php-fpm[1,2,3,4,5,8,9,10,11,12,13,14]。

0
看了该问题的人还看了