Linux宝塔面板解决php-fpm占用CPU过高问题全记录

Linux宝塔面板解决php-fpm占用CPU过高问题全记录

在使用宝塔面板管理LNMP(Linux + Nginx + MySQL + PHP)环境时,可能会遇到php-fpm进程占用CPU过高的问题,导致网站响应缓慢甚至无法访问。以下是一个详细的解决过程,旨在帮助遇到类似问题的用户快速定位并解决该问题。

一、问题背景

用户在使用宝塔面板搭建的网站中,发现网站经常出现卡顿和无法访问(502错误)的情况。通过top命令监控发现,php-fpm进程占用CPU过高,严重影响了网站的正常运行。

二、初步排查

  1. 检查是否被攻击或挖矿:用户首先怀疑是因为设置了弱密码导致被攻击,或者系统被挖矿。但在日志中并未找到有用的信息。
  2. 重装系统:尝试通过重装系统来解决问题,但并未奏效。
  3. 检查MySQL版本:怀疑是MySQL版本问题,从5.5换到5.1,多次尝试后问题依旧存在。

三、定位问题

通过持续的监控和排查,用户最终定位到问题是php-fpm进程占用CPU过高。

四、解决方案

  1. 确认宝塔面板环境

    宝塔面板安装的建站环境为LNMP,具体版本为Nginx 1.16.1、MySQL 5.5.62、PHP-7.0。

     

     

  2. 优化PHP7.0设置

     

    安装opcache缓冲器:用于加速PHP脚本的执行,提高性能。

     

     

    修改max_execution_time:将最大执行时间修改为20秒,以减少脚本执行时间过长导致的CPU占用。

     

     

     

     

     

     

    性能调整:根据服务器配置进行性能调整。宝塔面板会根据服务器配置推荐合适的并发设置。用户可以根据自己的服务器内存大小计算并发数,一般一个php-fpm进程占用内存约30M。以1G内存为例,大约可以设置34个并发。用户根据自己的实际情况,将并发数设置为20,并将max_spare_servers调整为14。

     

     

     

  3. 效果验证

    经过上述优化后,用户发现服务器CPU占用情况明显改善,不再像之前一样经常性占用100%。

    虽然php-fpm进程偶尔还会出现突发占用CPU 100%的情况,但基本能够迅速恢复正常,对用户的浏览体验影响较小。

五、总结

通过优化PHP7.0的设置,特别是安装opcache缓冲器、调整max_execution_time和根据服务器配置进行性能调整,用户成功解决了php-fpm占用CPU过高的问题。虽然偶尔还会出现突发情况,但整体性能得到了显著提升。

需要注意的是,不同服务器的配置和网站的具体需求可能有所不同,因此在实际操作中需要根据具体情况进行调整。同时,建议定期监控服务器性能,及时发现并解决问题,以确保网站的正常运行。

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请留言处理。

给TA打赏
共{{data.count}}人
人已打赏
未分类

世界,您好!

2023-2-22 13:54:47

未分类

Linux宝塔面板解决php-fpm占用CPU过高问题全记录

2025-11-1 16:48:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧