最高批处理模式下的 CPU 使用率
Posted
技术标签:
【中文标题】最高批处理模式下的 CPU 使用率【英文标题】:CPU usage in top batch mode 【发布时间】:2011-05-18 13:21:26 【问题描述】:我有一个问题让我很生气。我正在使用以下命令以批处理模式运行 top,
top -b -n 1
问题是我可以在批处理模式下运行 top 100 次,但 CPU 使用率永远不会超过原始值。内存使用量按预期变化,但 CPU 保持不变。如果我同时在不同的窗口中运行另一个顶部,则该顶部的 CPU 使用率会发生变化,但批处理模式下的顶部不会发生变化。
基本上,CPU 统计数据在批处理模式下似乎没有变化,而在交互模式下却发生了变化。有谁知道为什么? 自己试试,运行上面的命令几次,观察 CPU 使用率保持不变,然后在交互模式下运行 top,观察 CPU 使用率不断变化。
【问题讨论】:
在这里工作正常,否则你可以使用ps
或者sar | tail -1
我看到了同样的行为。批处理命令不能运行足够长的时间来获得良好的 CPU 使用累加器或其他东西。
Aschepler,似乎是这样,但我在其他任何地方都没有看到过这个。如果您将迭代次数设置为 2,则它可以工作。问题是我需要它进行 1 次迭代。
【参考方案1】:
在第一次迭代中,它会显示自系统启动以来的平均 CPU 使用率。
(请注意,top
的较新版本不再是这种情况)。
【讨论】:
是的,好像是这样。【参考方案2】:这是一个显示较长时间段内累积 CPU 使用率的行,在本例中为 5 秒。您可以使用 -d 标志对其进行调整。
top -b -d 5 -n 2 | awk '$1 == "PID" block_num++; next block_num == 2 sum += $9; END print sum'
【讨论】:
以上是关于最高批处理模式下的 CPU 使用率的主要内容,如果未能解决你的问题,请参考以下文章