尝试在linux机器上确定处理器队列长度(准备运行但当前不运行的进程数).Windows中有一个针对此指标的WMI调用,但对Linux不太了解我正在尝试挖掘/ proc和'top'获取信息.有没有办法确定cpu的队列长度?
编辑添加:Microsoft关于其度量标准的说法:"由于当前正在运行的另一个活动线程,已准备好但无法在处理器上运行的一个或多个线程的集合称为处理器队列."
sar -q
将报告队列长度,任务列表长度和三个负载平均值.
例:
matli@tornado:~$ sar -q 1 0 Linux 2.6.27-9-generic (tornado) 01/13/2009 _i686_ 11:38:32 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 11:38:33 PM 0 305 1.26 0.95 0.54 11:38:34 PM 4 305 1.26 0.95 0.54 11:38:35 PM 1 306 1.26 0.95 0.54 11:38:36 PM 1 306 1.26 0.95 0.54 ^C
vmstat的
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 2 0 256368 53764 75980 220564 2 28 60 54 774 1343 15 4 78 2
第一列(r)是我的机器上的运行队列 - 2
编辑:惊讶的是没有办法获得这个数字
获得数字的快速'肮脏方式(在不同的机器上可能会有所不同):
vmstat|tail -1|cut -d" " -f2