解决宝塔面板CPU占满100%,负载100%网站缓慢等问题

分类:站长 时间:2021-08-07 22:34 浏览:13004
概述
今天遇到一个朋友,说他的宝塔服务器面板cpu、负载都是100%,让我给解决,说起来很蒙,一般来说这种问题的可能性很多,有可能是程序性能、服务器负载能力、并发访问、木马病毒、被植入了挖矿程序等等,所以呢,我以试试看的态度,为这个朋友看了一下,现在将整个尝试环节给大家分享一下。一、mysql篇初步来说首先考虑使用       top       &nb
内容

今天遇到一个朋友,说他的宝塔服务器面板cpu、负载都是100%,让我给解决,说起来很蒙,一般来说这种问题的可能性很多,有可能是程序性能、服务器负载能力、并发访问、木马病毒、被植入了挖矿程序等等,所以呢,我以试试看的态度,为这个朋友看了一下,现在将整个尝试环节给大家分享一下。


以下六种都有可能造成宝塔服务器面板cpu和负载都是100%,按照以下六种可能出现的问题一一排查,绝对可以解决此问题。

一、mysql篇

初步来说首先考虑使用       top        查看一下当前的负载情况,使用SHELL工具连接到命令行操作界面,或通过宝塔面板->文件  点击终端进入命令行操作也可。


01.jpg


进入终端后,输入top查看一下负载情况,如下图:


02.jpg


仔细看发现主要是mysql的占用比较严重,根据负载情况可知,面板的主要负载应该发生在mysql的读写,用户的访问先不考虑,首先考虑mysql的性能问题,根据朋友发过来的截图来判断了一下。


03.jpg


发现内在的占用较少 ,看到这种情况,第一直觉可以优化一下mysql的性能,接着找到面板的软件管理,打开mysql的设置:

04.jpg


根据内存大小调整优化方案为2-4GB,首先将数据库全部备份了一下,老司机都懂的,数据安全最重要,不管如何操作都会存在风险,所以一定要备份一下!!!!然后,保存,再重启数据库。若方便的话建议重新启动一下服务器就更直观了。

05.jpg

负载确实降下来了,朋友们若是遇到此类问题,若是mysql占用的情况较为明显,可以考虑采用此种方案尝试 !!!!

二、php进程篇

我们知道,问题出现了重在如何分析?考虑到目前PHP的广泛应用,大多站点在选用服务器配置时,没有提前对自己的项目源码做过压测,也不知道程序源码的性能如何,同样的一条业务指令,有的开发者写的就考虑的比较多,有的相对就少很多,还有对数据库的读写、磁盘的IO等等一些不确定的因素,布署好程序后,发现很多100%负载的情况。

其实,宝塔已经为我们做了很多工作,我们完全可以做出一些配置来,避免一些高负载的情况出现,比如,我们可以使用更高版本的PHP,也可以通过 宝塔面板之PHP参数及并发调整 来调整并发性能,来降低PHP进程堵塞。

00.jpg

运行模式:动态 | 静态

php-fpm至关重要的参数:

max_children;静态方式下开启的php-fpm进程数量
start_servers; 动态方式下的起始php-fpm进程数量
min_spare_servers;动态方式下的最小php-fpm进程数量
max_spare_servers;动态方式下的最大php-fpm进程数量

那到底是选用动态的好还是静态的好?

大内存的服务器(比如8G以上)来说,用静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制(这块提到点了,进程越多占的资源越大),会提高效率。因为频繁开关php-fpm进程也会有造成更多的资源占用,所以内存够大的情况下开静态效果会更好。数量也可以根据 总内存/30M 得到,比如8GB内存可以设置为100,那么php-fpm耗费的内存就能控制在 2G-3G的样子。(此处参考:传送门

所以我们在实际的配置中,需要自己调配,这样可以大大的降低高负载的情况,此情况只适用于在使用top命令后,由php-fpm占用资源过大,来参考调整。

三、内存篇

PHP、Mysql性能、并发我们都调整过了,但负载还是居高不下,怎么办?
有办法啊,我们可以在不增加额外花费的同时,对内存进行扩容!
说到这里,我们不得不说,一个神奇的宝塔插件,那就是Linux工具箱,我们可以调整2个方面,来对内存扩展进行调整:

一是 添加swap交换分区
二是 添加内存盘

实际上,以上两种全是建立在磁盘空间的基础上来做的调整。(Windows下称为虚拟内存)
添加swap我们可以参考前面讲过的:宝塔面板之添加Swap交换分区 这里就不多说了。

添加内存盘如何操作呢?

0001.jpg

我们可以通过点击宝塔面板的软件商店,搜索:Linux工具箱,找到这个插件,点击操作区域的设置,进入Linux工具箱窗口,在步1点击文件夹打开, 选择存放磁盘的位置,步2输入可以挂载的内存盘大小(这个根据你目前的磁盘容量来考量),在步3处点添加,来完成内存盘的建立。

通过建立swap交换分区及内存盘,我们可以在增强服务器的稳定性前掉下,扩容内存的大小,以便解决一些相对配置较低,容易形成高负载而影响使用的服务器。

四、磁盘空间篇

可用磁盘空间太小或几乎占满的情况下,朋友们遇到过吧! 那么问题来了,磁盘空间也对高负载产生影响吗?
答案是绝对的,不信你试试;

体现在以上几个方面:

为了加快程式运行,大部分PHP程序会写缓存;
Mysql在不使用诸如:Memcache、Redis、eAccelerator、opcache进行内存优化时,会以文件的形式存储在磁盘中;
各种日志,如web访问日志、面板日志、监控日志及各种错误日志占用磁盘空间;

更有甚者,日志文件都能达到几十G、上百G,好吧,你的磁盘不花钱是不是?

不用多解释,在使用windows时,你会发现好多软件都会产生一些临时性的缓存、日志等文件,时间长了系统变慢,运行什么软件也不流畅,同样的,服务器系统一样会存在这样的问题,运行不流畅,就会产生资源被侵占。

所以我们在日常维护中,要多运用宝塔或三方已经提供的工具,或使用计划任务定期清理磁盘无用的文件,只有这样才会少些问题。

五、开发篇

对于有一定开发能力的朋友,可以对源码进行二开改造,降低php的进程数、Mysql存取数据库的性能,有好多问题还是产生于此,减少握手次数、对查库操作减少资源浪费。

本文旨在讲解宝塔面板的使用,过多关于程序开发方面的就不多讲了,大家可以在网上多搜索一下,多了解一下。

六、被攻击篇

可以查看下日志是否被攻击。可以屏蔽对应的IP段
一般文件都在 /www/wwwlogs/www.你的域名.com-access_log 下

一般真实用户不会在一个IP段

还有要判断是不是蜘蛛

如果是蜘蛛他会有写明的

601.jpg

这样的带spider的就是蜘蛛

如果日志太大,可以先清日志,

点击宝塔侧边栏的安全,顶部 Web日志:/www/wwwlogs1.19 MB 清空 

清空下日志后,然后再过几十秒打开就有访问日志,在分析

这样可以断点分析

例如:121.226.149.57/24

这是屏蔽IP断

24是代表前三位相同

3*8 =24

辨别前三位网段,就会自动标识出来了

现在基本上都是IP段单Ip了,如果有异常就再按这方法分析下就可以

121.226.149.57/24 代表前3个相同的IP 即254个IP

121.226.149.57/32 代表屏蔽前4个都相同的IP,即一个IP 

121.226.149.57/16 代表前2个相同的IP 即255*255个IP

所以,直接屏蔽 IP段/24 


本教程到此结束,如需要人工协助帮您处理,可联系QQ1213136159协助解决。

评论
  • 猎伞底部波浪
  • 猎伞底部波浪
  • 猎伞底部波浪
  • 猎伞底部波浪

我的

足迹

投稿

反馈

客服

猎伞官方客服

客服QQ:104****84 (点击直接对话)

客服电话:400****16(查看完整电话)

客服邮箱:service@liesan.com

管理仅处理交易投诉、举报、帐号、资金等平台使用问题;
商品问题请咨询各商品详情页面中显示的商家客服QQ。

正常模式精简模式

返回顶部