平均负载(Load average)

load average 的含义
平均负载(load average)是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数。

top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载表示

  系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中:

  - 它没有在等待I/O操作的结果

  - 它没有主动进入等待状态(也就是没有调用’wait’)

  - 没有被停止(例如:等待终止)

很多人会这样理解负载均值:三个数分别代表不同时间段的系统平均负载(一分钟、五 分钟、以及十五分钟),它们的数字当然是越小越好。数字越高,说明服务器的负载越 大,这也可能是服务器出现某种问题的信号。

  而事实不完全如此,是什么因素构成了负载均值的大小,以及如何区分它们目前的状况是 “好”还是“糟糕”?什么时候应该注意哪些不正常的数值?

  回答这些问题之前,首先需要了解下这些数值背后的些知识。我们先用最简单的例子说明, 一台只配备一块单核处理器的服务器。

以路况为例, 单核CPU、单车道 情况如下:

• 0.00-1.00 之间的数字表示此时路况非常良好,没有拥堵,车辆可以毫无阻碍地通过。
• 1.00 表示道路还算正常,但有可能会恶化并造成拥堵。此时系统已经没有多余的资源了,管理员需要进行优化。
• 1.00-*** 表示路况不太好了,如果到达2.00表示有桥上车辆一倍数目的车辆正在等待。这种情况你必须进行检查了。
多核CPU - 多车道 情况如下:

多核CPU的话,满负荷状态的数字为 "1.00 * CPU核数",即双核CPU为2.00,四核CPU为4.00。 

 
一般的进程需要消耗CPU、内存、磁盘I/O、网络I/O等资源,在这种情况下,平均负载就不是单独指的CPU使用情况。即内存、磁盘、网络等因素也可以影响系统的平均负载值。 
在单核处理器中,平均负载值为1或者小于1的时候,系统处理进程会非常轻松,即负载很低。当达到3的时候,就会显得很忙,达到5或者8的时候就不能很好的处理进程了(其中5和8目前还是个争议的阈值,为了保守起见,建议选择低的)。

 

查看load average 数据
下面几个命令都可以看到 load average
# top 
# uptime 
# w
截图如下:
 
top 命令的

 
uptime 命令的

w 命令的

 
这里的 load average 的三个值分别指系统在最后 1/5/15分钟 的平均负载值。
根据经验:我们应该把重点放在5/15分钟的平均负载,因为1分钟的平均负载太频繁,一瞬间的高并发就会导致该值的大幅度改变。

 

 

 

 

posted @ 2018-06-08 13:43  浅雨凉  阅读(2044)  评论(2编辑  收藏  举报