服务器Host.load过高问题

问题原因

阿里的服务器警报,显示Host.load已经达到16,警戒值放到8了,超出了两倍,而且按照常理来讲应该维持在1以内。
而CPU的使用率维持的很好,每个核也就用20%左右吧,一开始就是不太知道,Host.load和CPU的使用率上有什么关系和什么区别。


htop

图里是通过htop看的,右上角的Load average就是平均时间内的Host.load,多久时间内平均呢,这个时间是自己设定的。左上角的cpu进度条是使用率,而且是单核,因为多核会显示多个cpu,图从百度摘来的。

Host.load

那么先看一下Host.load是个什么东西

假设我们的机器是4核的,也就是四个工人,我让这四个工人待着啥也不用干,Host.load就是0。我让两个人分别取搬一瓶水,Host.load就是0.5。
也就是

任务数 = 核数*Host.load

那么CPU的使用率呢?

假设我让里的一个人去搬一块砖,他的使用率也就1%,但是我让他抗一个胖子,可能就达到100%了,但是其他三个人都没干活,只让他干,而且当前就这一个任务,所以Host.load就是0.25。
我的理解基本就是这样。

然而当Host.load过高是个什么情况?

我们的系统做事情是时间片轮转的,也就是一个核同一时间只能做一个事情,比如你播放音乐和聊QQ等,看似是同时进行的,其本质上一个一个的做,只是切换的足够快而已。Host.load过高会怎么样呢,就是给它安排的活太多了,他快速切换干活也干不过来了,注定有一个任务要等一会。这就会显得系统做事情特别慢,不是不干了,就是需要等一阵。

我这里导致的原因

可能因为最开始没有配置好的原因吧
我们的df -h命令用不了,一用就卡住。
解决问题的博客
通过上面博客的方式解决之后,Host.load就降下来了。
mmp

你可能感兴趣的:(服务器Host.load过高问题)