Linux优化实战--怎么理解平均负载

259 阅读2分钟

一般我们会使用linux命令中的top,或者是uptime来检测系统的负载情况,简单观察的话还是uptime更方便阅读一些。

当我们输入完uptime后,我们在输出的最后会得到3个数字,这三个数字就代表着我们系统在1,5,15分钟的平均负载。

平均负载

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。可运行状态也就是操作系统中说的运行态,就绪态。不可中断也就是内核态,它无法被打断。

输入完uptime后得到的那三个值的含义是什么呢?

比如当平均负载为 2 时,在只有 2 个 CPU 的系统上,意味着所有的 CPU 都刚好被完全占用。在 4 个 CPU 的系统上,意味着 CPU 有 50% 的空闲。而在只有 1 个 CPU 的系统中,则意味着有一半的进程竞争不到 CPU。(一般为1.7的时候就需要去排查一下)

怎么看当前系统的cpu的核心?

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

cpu的使用率和平均负载的关系?

1 CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的;

2 I/O 密集型进程,等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高;

3 大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高。

如果我们要使用centos7进行实验的话,我们需要安装stress和安装过程如下:

//安装stress
yum install -y epel-release
yum install stress -y

//安装sysstat
yum install sysstat