【发布时间】:2014-07-30 15:04:05
【问题描述】:
我的虚拟机中平均 CPU 负载的 TOP 命令输出有问题。它显示了错误的值,例如在具有 1 个虚拟核心的 VM 中,%Cpu0 显示 3% 的使用率,而我看到一个消耗 98% 的进程。
有趣的是,有时它确实可以正常工作。例如,当消费进程的用户是 VM 或 Root 时。但是,当我使用 JMeter 在我的 VM 上正在运行的 owncloud 实例上执行 POST 请求时,VM 中会出现一个新进程,该进程用尽 cpu 并由用户“www-data”执行。不知何故,这个进程的使用并没有显示在平均 cpu 负载中。 cpu 肯定会被使用,因为我可以在我的虚拟机监视器中看到使用率上升。
(很遗憾我还不能发截图)
这就是为什么我要解析 TOP 中显示的每个进程的 CPU 使用率,然后将这些值相加以自己计算 CPU 使用率的总量以获得准确的结果。
(运行我的测量脚本后,我会得到一个 top_VM.txt 文件,它只是来自我的 VM 的 TOP 日志,所以我想从那里开始)
到目前为止,我得到了这个:
awk '{ print $9 }' /home/user/top_VM.txt
这会给我相关的行,但我不知道如何遍历它,将值保存为变量并将它们相加。我会很感激你的想法。
最好的问候
【问题讨论】:
标签: linux bash parsing virtual-machine cpu-usage