据我所知,按定义,un*x负载是一种积分度量,在预定义的和相当长的时间内平均。另一方面,CPU的使用可以被看作是一种临时的度量:虽然从技术上讲,它仍然是在一段时间内被测量和平均的,但是这个时间段实际上是非常短的。最终的结果是,当CPU密集型进程终止时,CPU的利用率会立即下降,而负载值则会随着时间的推移而逐渐减少。所以你可以让一台电脑现在什么也不做,而负载仍然很高,只是因为它没有足够的时间来减少。因此,该度量不太适合实际cpu负载以戏剧化方式更改的情况。
现在:是否有可能在第二个时间段的一小部分时间内测量一个类似于“负载”的值?我不是说每秒钟打印十次,因为它很琐碎。我的意思是,平均运行队列进程数超过1毫秒或100毫秒周期,而不是超过15分钟。
发布于 2019-08-31 15:44:42
如何获得Linux上等待上等待的进程数?有anser ;)
awk '/procs_running/ { print $2 }' /proc/stat给出了等待CPU资源的进程数。有了这个,您可以在任何时候进行集成。
顺便说一下,平均负荷是在1/5/15分钟测量的,所以如果1分钟足够短,你可以用这个。
https://unix.stackexchange.com/questions/538465
复制相似问题