一.简介
使用top或者uptime命令可以看到cpu平均负载,1,5,15分钟
平均负载包括以下几个部分:
- 正在运行的进程。正在使用cpu做计算的进程,ps看到R 也就是running。
- 等待运行的进程。cpu跑满了,等待执行的进程,ps看到的R 也就是runnable。
- 不可中断进程。等待硬件设备IO响应的进程,ps看到的D,也就是disk sleep,对硬件设备的一种保护。当一个进程在向硬盘写数据,如果被其它进程打断了,那数据将会不一致。
平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。
如果是多个cpu,先计算每个cpu的平均负载,再求和
平均负载并非使用率。cpu顶多100%,不可能120%使用率,但负载可以是200%,因为还有等待运行的进程。
二.合理的负载
理想情况下,5个cpu,负载为5是最好的,都满载。
当1分钟,5分钟,15分钟相差不大,说明系统很稳定 当1分钟小于15分钟,说明过去15分钟负载很高,当前正在降低 当1分钟大于15分钟,说明负载正在增加,过去15分钟负载比较低 当平均负载超过cpu核心数70%就要注意了,可能有大量任务堆积,需要排查。
但是: 当有10个cpu核心时,负载显示1则说明可能有一个cpu满载,也可能是10个cpu都使用10% 当有10个cpu核心时,负载显示10则说明可能有一个cpu满载,并有900%任务在等待,也可能10个cpu都满载
所以:
需要可以使用htop
等工具来查看cpu是否都集中在一个上面运行。若是4核心,但负载都集中在一个上,程序依然会很慢