【问题标题】:CPU usage in top batch mode最高批处理模式下的 CPU 使用率
【发布时间】: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 次迭代。

标签: linux command-line top-command


【解决方案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}'

【讨论】:

    猜你喜欢
    • 2021-12-25
    • 2014-12-05
    • 2020-11-22
    • 2020-02-12
    • 1970-01-01
    • 2010-09-08
    • 2020-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多