当系统出现一些瓶颈的时候我们往往会使用uptime或者top命令来看看系统的使用情况。
uptime命令关键的地方告诉我们系统的平均负载,那么什么是平均负载呢?
平均负载是指系统处于可运行状态和不可中断状态的平均进程数量,也就是平均活跃进程数量。
可运行状态指的是等待CPU或者正在使用CPU的进程,不可中断进程的进程指的是正在执行的操作系统内核任务的进程,如果此时发生中断就会出现不一致的情况。
也就是说平均负载就是系统中活跃的进程数量,那么到底多少活跃进程数量合适呢,这个我们需要结合对应的CPU数量来看, 我们可以通过下面这个命令来进行查看:
grep 'model name' /proc/cpuinfo | wc -l
知道CPU的数量,我们就知道系统的情况了,我们可以做出推论:
- 最好的情况就是一个CPU占用一个进程
- 当平均负载高于CPU数量,表示出现了过载
uptime命令会输出三个平均负载,分别是1分钟,5分钟,15分钟的的三个值,注意这个1分钟是过去一分钟的情况。
- 如果这三个值差不多,那么说明系统还是比较稳定
- 如果1分钟的值明显高于15分钟的值,那说明系统可能出现了过载,关于这一点还需要继续观察看看是不是暂时的。
- 当然如果呈下降趋势,说明过去15分钟的负载比较高
但是我们还需要搞清楚一点是CPU的负载有时候并不完全等于平均负载
- CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的;
- I/O 密集型进程,等待 I/O 会导致平均负载升高,但 CPU 使用率不一定很高;
- 大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高。