【发布时间】:2018-05-07 15:44:17
【问题描述】:
我想编写一个 bash 脚本,将当前 CPU 利用率写入文件“日志文件”。我正在使用 Intel® Core™ i7-4500U CPU @ 1.80GHz × 4 和 Ubuntu 15.10。
我已经在这个论坛上看到过类似的问题,但并不是我的所有问题都得到了 100% 的回答。通过我的研究,我想出了两种可能的方法来实现我的目标。第一个是
mpstat | grep "all" | awk '{ print $3 + $5; }' >> logfile
(添加用户 CPU 和系统 CPU)我的第二个候选者是
mpstat | grep "all" | awk '{ print 100 - $12; }' >> logfile
(100 - %空闲 CPU)。如果我对总 CPU 利用率感兴趣(因此应包括以某种形式计为 CPU 的所有组件),那么这两个中的哪一个对我来说是正确的。
另一个问题:根据我通过阅读其他线程所学到的知识,我认为我的第二个候选人
mpstat | grep "all" | awk '{ print 100 - $12; }' >> logfile
应该很准确。但是,当我打开“系统监视器”并监视“CPU 历史记录”时,我观察到 CPU 利用率明显不同。另一件事是系统监视器中的值非常动态(CPU 在 4% 和 18% 之间变化),而在同一时期,第二个命令的结果几乎保持不变。有人对此做出解释吗?
非常感谢所有 cmets!
【问题讨论】:
-
您是否发现系统监视器的利用率显着高于此脚本同时返回的数量?或者可能是额外的 CPU 使用率仅仅是系统监视器使用更多 CPU 来生成 GUI 并绘制使用图?
-
是的,我打开了系统监视器,在执行此操作时,我将第二个命令输入终端几次。我刚刚观察到这些值也可能(显着)更低。另一件事是系统监视器中的值是非常动态的(CPU 在 4% 和 18% 之间变化),而在同一时期,第二个命令的结果几乎保持不变——我在帖子中对此进行了编辑。
-
我建议安装GNU accounting utilities。
-
这个问题可能更适合 unix.stackexchange.com 或 askubuntu.com。这与脚本无关,而是
mpstat实用程序的工作原理。 -
@BJPrim 添加了 Bash 脚本来回答应该满足您的需求(获得更“实时”的价值)。