在顶部加载平均值,在vmstat中加载特效

据我所知,上面的平均负载是进程(线程)在运行或不间断的睡眠状态的数量,所以在vmstat中它应该等于(procs-r + 1)+ procs-b,但实际上,这两个数字总是有很大的差距。 我的理解中的任何错误,如果有些人给我一些指导,非常感激。

top - 05:34:50 up 1 day, 20:56, 5 users, load average: 2.83, 2.67, 1.62 Tasks: 79 total, 1 running, 78 sleeping, 0 stopped, 0 zombie Cpu(s): 6.8%us, 1.8%sy, 0.0%ni, 91.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.4%st Mem: 1758000k total, 582636k used, 1175364k free, 103932k buffers Swap: 917500k total, 0k used, 917500k free, 180868k cached procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- rb swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 1182524 103784 180860 0 0 1 9 6 53 7 2 91 0 0 0 0 0 1182524 103784 180860 0 0 0 36 70 117 0 0 100 0 0 0 0 0 1182516 103784 180860 0 0 0 0 73 132 0 1 100 0 0 0 0 0 1182516 103784 180860 0 0 0 0 60 127 0 0 100 0 0 1 0 0 1182516 103784 180860 0 0 0 0 62 102 0 0 100 0 0 0 0 0 1182628 103784 180860 0 0 0 0 289 238 1 2 97 0 0 2 0 0 1152160 103784 180892 0 0 0 8 1481 2371 54 12 34 0 0 1 0 0 1182192 103784 180860 0 0 0 0 681 834 19 4 78 0 0 0 0 0 1182200 103784 180860 0 0 0 0 80 147 0 1 100 0 0 0 0 0 1182200 103784 180860 0 0 0 0 53 107 0 0 100 0 0 0 0 0 1182208 103788 180856 0 0 0 72 64 123 0 0 100 1 0 

它基于可运行或不可中断状态下的进程数量。 Runnable当前正在处理器上执行,或等待处理器变为空闲。 不间断状态正在等待IO完成 – 这不是“不中断的睡眠” – 这个过程在技术上是“睡眠”的,但是它正在等待内核调用完成。

基本上这是当前“做某事”的进程数量,但请记住,这是过去1/5/15分钟内的平均值 – 这不是一个即时值。 这与stream程列表形成鲜明对比,stream程列表是顶层收集信息时的快照。 stream程每个星期都会唤醒并进入许多次,所以没有简单的方法将正常活动与平均负载联系起来,除非您非常幸运,stream程总是处于活动状态,或者是IO的问题。

作为一个例子 – 最高输出中的第一行显示了一个当前不可运行的进程,但自从上次收集统计信息以来已经使用了9%的CPU

对OS可用的内核数没有调整负载平均值 – 平均值为1表示1个CPU是100%繁忙(所以单个核心系统被固定,而四核系统被使用25%)。 根据我的经验,平均高达系统内核数量的75%一般不会太糟糕。

加载平均值是运行队列长度与当前在CPU上运行的作业数之和。

从书中的UNIX电源工具:

负载平均值试图随时测量活动进程的数量。 作为CPU使用率的衡量标准,平均负载是简单的,定义不明确,但远非无用

(procs-r + 1)+ procs-b:hmm。

要了解平均负载,请阅读这篇文章和这篇文章 。