top -bn1 未给出正确的 CPU 使用情况

top -bn1 未给出正确的 CPU 使用情况

我正在登录一个节点,我知道该节点的 cpu 使用率接近 100%(20 个单进程作业,每个作业使用几乎 100% cpu)。当我top交互使用时,第一次迭代,它给了我大约 20% 的使用率ni,下一次迭代以及正确使用后的所有迭代都提供了 95% 以上的ni使用率。我想要通过管道传输topvia的输出top -bn1 > outfile,但第一次迭代top -bn1(唯一的迭代)给出了不正确的 CPU 使用率。如果我使用top -bn2,那么第二次迭代会给出正确的用法,但输出太多。

我怎样才能top -bn1正确地给出CPU使用率?我正在编写此脚本用于使用情况统计,因此如果有必要,我可以返回并独立对进程进行分析以生成我自己的 CPU 使用情况,但如果top能够立即为我提供正确的使用情况,那就太好了。

编辑:mpdstat -P ALL给我相同的、不正确的初始使用统计数据。如果能弄清楚这一点也很好。我可以使用mpstat -P ALL 1 1,但这会产生两次输出。

答案1

只需删除第一次迭代的输出即可。

top -bn2 | awk '/^top -/ { p=!p } { if (!p) print }'

答案2

有些工具首先显示计算出的平均值。其他工具的第一个样本不完整。总的来说,建议跳过第一个样本以获得所需的结果。

相关内容