图解负载及负载太高如何解决

负载状态(load average)中的数据代表了什么?

宝塔的负载状态图表中百分比的含意:

50% 以下 - 此时服务器正以低负载状态运行
50 ~ 90% - 服务器负载正常,用户的请求可以及时得到服务器响应
90% ~ 100% - 表示服务器资源已耗尽,无法及时响应用户请求,需尽快排查项目是否运行异常,或增加服务器配置

影响服务器负载的因素:

1、CPU使用率
2、线程数量
3、IO使用率
4、swap使用率
5、因宿主机负载过高导致资源分配不足

如阿里云的突发性能机器,即使你看你上面4个数据正常都,但你的负载有时就是很高,就有可能是宿主机限制导致的

下面我们以机动车道路来例举服务器在不同负载状态时的表现

假设:

CPU核心数 = 车道数量
内存 = 车道宽度
磁盘IO = 车道限速

图解负载及负载太高如何解决

大实话:很多低配机器其实不装宝塔只跑纯linux都是高负载状态,只是他们自己不知道而已,宝塔是把这个指标可视化显示出来

解决负载过高的方法

宝塔官方给出的解决方法:

1、mysqld:尝试优化mysql
2、php-fpm:适当限制php并发
3、其它进程:检查是否中了挖矿木马
4、被DDOS:换到高防机房
5、配置过低:升级服务器

当然,不差钱的用户,可以升级云服务器配置或者直接购买高性能云服务器,接入阿里云RDS将数据库分离出去,媒体图片等大文件存储在OSS上,接入CDN提升用户体验,反正同行CC或者DDoS还可以计入DDoS高防产品,可以查看阿里云官方的最新优惠活动大全。

如果荷包很满,升级服务器配置当然是最好的解决方法,可是码笔记手里这台t5实例就是为了追求更高的性价比才买的(打脸,性价比最高的服务器应该是xn4实例),我肯定是不会升级配置的(阿里云直接升级配置很贵的)。

回到这台云服务器的问题:显然CPU使用率不高而负载却很高,最应该做的检查限制php并发,检查下进程才是,最后码笔记做的优化:

1、统一PHP版本
由于安装了多站点,不同站点使用的PHP版本不同,统一了PHP版本,卸载了多余的PHP版本;

2、开启了t5实例的无性能约束模式
注意:如果你的云服务器不是阿里云的突发性能t5实例,可以忽略此条。开启无性能约束模式有可能产生费用,到目前为止还没有支出,先开启试试,如何开启参考:突发性能t5云服务器开启无性能约束模式方法

3、网站接入CDN
对我我这种流量不高的网站,接入CDN没有多少钱,100GB流量包足够(不到20块钱,可以参考阿里云CDN官方优惠价格),既可以提升访客速度又可以减少源站压力。

4、网站静态化
如果是WordPress博客,使用安装网站静态化插件(如:Super Static Cache),由于码笔记的网站的数据库是直接在服务器上搭的,频繁数据库访问肯定会有影响,使用静态化插件可以减少数据库交互。

参考文章链接:
https://www.bt.cn/bbs/thread-11402-1-1.html
http://www.mabiji.com/bt/fuzaigao.html