该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。
1.什么时候需要查看平均负载?
系统或应用运行缓慢的时候。
2.平均负载的意义和误区?
平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数,也就是平均活跃进程数。
可运行状态:正在使用CPU或正在等待CPU,ps -aux 中stat为R的。
不可中断状态:处理内核态关键流程,如进程向磁盘写数据,ps -aux 中stat为D的。
误区:平均负载不是CPU使用率,或者不能单单指CPU使用率。平均负载高可能由以下几个原因引起:
1.CPU密集型任务,此时可以把平均负载看成CPU使用率。
2.大量IO等待,此时平均负载的升高由IO等待引起。
3.等待CPU,核数少,任务多,也会导致平均负载升高。
假如平均负载是2,对不同的核数有不同的意义:
1.如果是一个核的CPU,一半的进程竞争不到CPU。
2.如果核数为2,表示全部CPU都被占用。
3.如果核数为4,表示还有一半的CPU空闲。
平均负载中的1,5,15分钟要联合起来看,才能够全面反映系统整体的负载趋势。
3.如何查看?
使用uptime或者top均可以,如果负载高可以通过以下方式定位哪个进程导致:
使用mpstat -P ALL 3 //监控所有CPU,3为间隔,每隔3秒输出。
mpstat可以查看每个CPU的使用状况。
pidstat -u 3 20 查看进程情况,每隔3秒输出,总计20次。
pidstat用于看进程使用资源情况。
4.平均负载多少合适?
一般为不超过核数70%,cat /proc/cpuinfo|grep 'model name'|wc -l 查看核数,
如为16核,则不超过11.2。这个值只是经验值,可具体情况具体看待。