uptime的平均负载意思是
单位时间内,系统处于 可运行状态 和 不可中断状态的平均进程数,也就是平均活跃进程数
当一个进程向磁盘读写数据时,为保证一致性,在得到磁盘回复前,他是不能被其他进程或中断打断的,如果被中断就容易出现数据与进程数据不一致的问题
不可中断实际上是系统对进程和硬件设备的一种保护机制
当平均负载为2时
如果只有2个CPU就表示全部被占用
在4个CPU上,意味着有50%的空闲
在1个CPU上意味着有一半的进程竞争不到CPU
通过top或者 /proc/cpuinfo 查看CPU个数决定负载大小
uptime的1分钟,5分钟,15分钟负载值
如果是1.73,0.6,7.98
表示最近一分钟负载是173%,5分钟是60%,15分钟内是798%
从整体看负载在降低
当平均负载高于CPU数量70%的时候,就应该分析排查负载高的问题了
一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常运行
CPU使用率是单位时间内CPU繁忙的情况,跟平均负载并不一定完全对应
1.CPU密集型进程,大量CPU导致平均负载升高,这两者是一致的
2.I/O密集型,等待I/O也会导致平均负载升高,但CPU使用率不一定很高
3.大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高
平均负载提供了一个快速查看系统整体性能的手段,反应了整体的负载情况,但只看平均负载本身并能直接发现问题,需要注意
1.平均负载高可能是CPU密集型进程导致的
2.平均负载高并不一定代表CPU使用率搞,还可能是I/O更繁忙了
3.当发现负载较高的时候,可以使用mpstat,pidstat等工具辅助分析负载情况