linux – Top在第一个屏幕或批处理运行时显示64%空闲,而根本没有空闲时间

我在几个4核心服务器上运行了一个非常繁重的数字运算,所有运行Ubuntu Precise Pangolin LTS 64位,在云端(所以我想在虚拟化环境中).

为了监控cpu的使用情况,我编写了一个.sh,它使用“top -b -n 1”(这是一个top运行,只有第一个“frame”)并将它与其他一些数据合并,写一个小报告.

但是,对于每台服务器,top总是在cpus线上报告64%空闲,即使我非常确定所有四个核心都是100%忙碌.

实际上,以交互方式运行顶部,在第一帧中它报告64%的空闲时间,但是一旦刷新它就会报告正确的(几乎0%空闲)数据.

vmstat,在cpu列中,总是在第一行报告64%的空闲时间,然后开始报告(据称)实际数据.

为什么?它是top / vmstat或内核中的错误吗?或者它是如何测量cpu%的已知副作用?为什么总是64%?

cpu load总是正确的(大约4).

解决方法

这是因为top,vmstat,iostat在他们的第一次运行中都收集了自系统上次重启时间以来的数据.

连续迭代在您指定的采样周期上运行.因此,在第一次运行顶部时,您将看到%空闲时间,因为从重新启动到运行顶部的时间,它是空闲的%.但是在下一次迭代中,由于它很忙,它不会显示任何%空闲.

排除第一次迭代并尝试在所需的时间间隔内进行采样.

相关文章

查找全部容器的日志文件 $ sudo find /var/lib/docker/conta...
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型