试图确定在Linux机器上的处理器队列长度(准备运行的进程的数量,但目前没有)。 在Windows中有一个WMI调用这个指标,但不知道很多关于Linux我试图挖掘/ proc和'顶部'的信息。 有没有办法确定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---- rb 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
uptime
会使您获得最近的平均负载,这大致是活动进程的平均数量。 uptime
报告过去1分钟,5分钟和15分钟的平均负载。 这是一个按系统测量,而不是按CPU。
不知道Windows中的处理器队列长度是多少,希望它足够接近?