宝塔面板是一款非常受欢迎的服务器管理工具,它可以帮助用户轻松地管理服务器上的网站、数据库等。正常运行的服务器突然出现了宝塔负载和 CPU使用率 100% 的问题,并且导致网站加载运行缓慢。本文WPPOP详细介绍宝塔导致 CPU 使用率 100% 的原因以及完善的解决方法。
导致 CPU 使用率 100% 的主要原因
当宝塔面板中 CPU 使用率 100% 的时候,我们首先需要找到问题的原因,程序性能、服务器负载能力、并发访问、木马病毒、被植入了挖矿程序等。主要的原因包括以下:
1. 高并发访问
当网站的流量突然增加时,服务器需要处理大量的请求,这会导致CPU使用率飙升,这种情况下,我们需要优化网站的性能,例如使用缓存技术、压缩图片等方法来减轻服务器的压力。
2. 插件或软件冲突
宝塔面板上有很多插件和软件,它们之间可能存在冲突,导致CPU使用率过高,这种情况下,我们需要检查并关闭不必要的插件和软件。
3. 配置过低,服务器系统资源不足
如果服务器的硬件配置较低,例如CPU核心数较少,内存容量较小等,那么在处理大量请求时,CPU使用率很容易达到100%,这种情况下,我们需要升级服务器的硬件配置。
4. 恶意攻击
我们的服务器可能会遭受到DDoS攻击或者CC攻击,这些攻击会导致服务器的CPU使用率飙升,这种情况下,我们需要采取相应的安全措施,例如使用防火墙、限制IP访问等方法来保护服务器。
原因排查
进入宝塔面板的【终端】模块,使用输入 top 命令查看一下服务器的实时负载情况,包括CPU和内存等数据,如下图所示:
如果不是服务器被攻击或植入木马,那么主要的CPU高占用的一般就是 php-fpm 和 mysqld 这2个应用了。因为这个应用在网站运行过程中是频繁响应处理的请求进程。
CPU 使用率 100% 的解决方法
找到 CPU 高占用的原因,我们就要着手去做服务器环境优化,让服务器在一个更加合理的参数配置下流畅地运行。
1. php-fpm 占用过大的解决方法
1.1 安装扩展
在宝塔面板的【 软件商店 – 已安装 】的应用分类列表中找到当前网站运行使用的 PHP 版本,点击右侧对应的【设置】 项,在弹出操作窗口中,切换到 【安装扩展】,在扩展列表中找到 opcache (加速 PHP 代码执行效率)和 memcached (把数据缓存到内存)并安装,如下图所示:
安装好 opcache 和 memcached 之后,可以明显地提升服务器运行效率,很大程度上降低服务器的负载,减少 CPU 和 内存的占用。
此外,还可以安装以下PHP网站常用扩展: fileinfo、redis、apcu、imagemagick、exif 等。
1.2 性能调整
在宝塔面板的【 软件商店 – 已安装 】的应用分类列表中找到当前网站运行使用的 PHP 版本,点击右侧对应的 【设置】 项,在弹出操作窗口中,切换到 【性能调整】,根据服务器配置选择并发方案,或者自定义调整不同参数,如下图所示:
- 【最大子进程数量】越大,并发能力越强,但max_children最大不要超过5000
- 【内存】每个PHP子进程需要20MB左右内存,过大的max_children会导致服务器不稳定
- 【静态模式】始终维持设置的子进程数量,对内存开销较大,但并发能力较好
- 【动态模式】按设置最大空闲进程数来收回进程,内存开销小,建议小内存机器使用
- 【按需模式】根据访问需求自动创建进程,内存开销极小,但并发能力略差
- 【外网访问】若需外网访问,连接方式为TCP套接字,并将[连接信息-绑定IP]改为0.0.0.0
- 【外网访问】配置正确的IP白名单,在防火墙/安全组放行监听端口,有安全风险,需谨慎
设置完成后,在上图中切换至【服务】选项卡,点击【重启配置】按钮,使得调整后的配置生效。
2. MySQL占用过大的解决方法
友情提示:为确保数据安全,进行性能调整前,请先做好数据库备份,以防数据丢失!
在宝塔面板的【 软件商店 – 已安装 】的应用分类列表中找到当前网站运行使用的 MySQL 版本,点击右侧对应的 【设置】 项,在弹出操作窗口中,切换到 【性能调整】,根据服务器配置选择并发方案,或者自定义调整不同参数,如下图所示:
根据当前服务器配置,选择最佳的优化方案,对其性能进行调整。
MySQL数据库性能调整后,点击 【重启数据库】按钮,使得调整后的配置生效。
3. 升级服务器硬件配置
如果以上方法执行后,服务器运行效果还不够理想,那很可能就是你当前使用的服务器配置过低了,建议升级服务器配置,增加CPU核心数、扩大内存容量等。
4. 采取必要的安全防护措施
对于网站安全性来说,可以通过以下方法来保护服务器免受恶意攻击:
使用防火墙:例如使用iptables、firewalld等防火墙工具来限制非法访问。
限制IP访问:通过设置IP访问限制,可以防止恶意IP对服务器进行攻击。
使用WAF:通过使用Web应用防火墙(WAF),可以有效防止SQL注入、XSS攻击等常见的Web攻击。
配置CDN:缓存加速,分布式多节点DDOS防护、CC防护、WAF防护,抵御DDoS攻击。
经过上以的服务器配置优化,服务器的压力肯定可以得到有效的缓解,此外,要做好定期检查服务器的硬件配置,确保硬件配置能够满足网站的需求。