CPU-平均负载篇幅

1.平均负载

1.1 定义:单位时间内系统处于可运行状态和不可中断状态的平均进程数,可理解成平均的活跃进程数。

可运行状态:正在使用CPU或着正在等待CPU的进程,PS中处于R(running或runnable)的进程

不可中断状态:正处在内核态关键流程的进程,并且是不可打断的,PS中处于D(Disk Sleep)的进程。他是对进程和硬件设备的一种保护机制。

例子:平均负载为2的意义:

在2C的机器,意味着刚好所有的CPU都被占用;2/2c =1

在4C的机器,意味着CPU有50%的空闲; 2/4c < 1

在1C的机器,意味着CPU有一半进程竞争不到CPU;2/1c > 1


1.2 平均负载为多少是合理值?

1.2.1

首先得知道机器CPU的核数:

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

1.2.2

Top\uptime 看到的 load average: 45.58, 40.77, 38.55(最近1min,5min,15min的平均负载情况)

关注load average的趋势:

如果趋势递增:最近1分钟服务器的任务在变轻

如果趋势递减:最近1分钟服务器的任务在变重

如果趋势不明显:最近1分钟服务器的处理情况都差不多,关注此时负载数值


举例:看到的 load average: 1.78, 0.55, 7.98

在单核的机器上,最近1分钟,系统有78%的超载;最近15分钟,系统有698%的超载;从整体趋势来看,系统的负载在降低。

1.2.3

当平均负载高于CPU的70%的时候,应该排查负载高的问题了。


1.3 平均负载与CPU使用率的区别

平均负载:进程数比值,包括正在使用CPU的进程、等待CPU和IO的进程;

CPU使用率:单位时间CPU繁忙情况的统计;


CPU密集型,使用大量CPU会导致平均负载增高,此时平均负载和cpu使用率是一致的;

IO密集型,等待IO会导致平均负载升高,但CPU使用率不一定高;

大量的CPU的进程调度,会导致平均负载升高,但是CPU使用率不一定高。

1.4 iostat、mpstat、pidstat

你可能感兴趣的:(CPU-平均负载篇幅)