转自:https://www.cnblogs.com/kaituorensheng/p/3602805.html

1. load average 定义

linux系统中的Load对当前CPU工作量的度量。简单的说是进程队列的长度。

Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。

通过系统命令"w"查看当前load average情况

 

上边0.31,0.30,0.31表示

第一位0.31:表示最近1分钟平均负载
第二位0.30:表示最近5分钟平均负载
第三位0.31:表示最近15分钟平均负载

linux系统是5秒钟进行一次Load采样

 

2. load average值的含义

1) 单核处理器

假设我们的系统是单CPU单内核的,把它比喻成是一条单向马路,把CPU任务比作汽车。当车不多的时候,load <1;当车占满整个马路的时候 load=1;当马路都站满了,而且马路外还堆满了汽车的时候,load>1

2) 多核处理器

我们经常会发现服务器Load > 1但是运行仍然不错,那是因为服务器是多核处理器(Multi-core)。
假设我们服务器CPU是2核,那么将意味我们拥有2条马路,我们的Load = 2时,所有马路都跑满车辆。

:查看cpu 核数命令: 

grep 'model name' /proc/cpuinfo | wc -l

 

3. 什么样的Load average值要提高警惕

  • 0.7 < load < 1: 此时是不错的状态,如果进来更多的汽车,你的马路仍然可以应付。

  • load = 1: 你的马路即将拥堵,而且没有更多的资源额外的任务,赶紧看看发生了什么吧。

  • load > 5: 非常严重拥堵,我们的马路非常繁忙,每辆车都无法很快的运行

 

4. 三种Load值,应该看哪个

通常我们先看15分钟load,如果load很高,再看1分钟和5分钟负载,查看是否有下降趋势。
1分钟负载值 > 1,那么我们不用担心,但是如果15分钟负载都超过1,我们要赶紧看看发生了什么事情。所以我们要根据实际情况查看这三个值。




CPU指标

在任意时间内,CPU有7个状态: 

在任意时间内,CPU有7个状态: 
1.idle,表示CPU闲置并等待工作分配. 
2.user,表示CPU在运行用户的进程 
3.system,表示CPU在执行kernel工作 
4.nice,表示CPU花费在被nice改变过优先级的process上的时间

(注意:被nice命令改变优先级的process仅指那些nice值为负的process.花费在被nice命令改变优先级的任务上的时间也将被计算在系统和用户时间内,因此整个时间加起来可能会超过百分之百) 
5.iowait,表示CPU等待IO操作完成的时间 
6.irq,表示CPU开销在响应硬中断上的时间 
7.softirq,表示CPU开销在响应软中断上的时间. 
我们一般用vmstat看到的都是四个状态:sy,us,id,wa,通过他和load avg结合,基本可以知道cpu的状态

大部分的性能工具用百分比表示CPU时间.当iowait很高的时候,你需要分析你的IO设备,比如磁盘,网卡.