【发布时间】:2015-11-05 08:06:56
【问题描述】:
我正在使用 Java 在 Linux 上运行命令。由于top 是一个交互式命令,需要按 1 来获取所有 cpu 的信息,所以我不能使用它。所以我使用以下命令来获取 cpu(s) 信息:
cat /proc/stat|grep "^cpu[0-9]* ";sleep 3;cat /proc/stat|grep "^cpu[0-9]* "
我得到的输出是:
cpu 4673683 193 832132 1544221346 142352 1220 171760 0 0
cpu0 2473973 90 524817 769734476 73628 1124 158588 0 0
cpu1 2199709 103 307315 774486870 68723 95 13171 0 0
cpu 4673683 193 832133 1544221744 142352 1220 171760 0 0
cpu0 2473974 90 524817 769734674 73628 1124 158588 0 0
cpu1 2199709 103 307315 774487069 68723 95 13171 0 0
现在我的问题是如何在 top 命令显示时从中获取百分比。
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
我无法安装任何包,例如 mpstat。
【问题讨论】:
-
对于您问题的顶部:
top -bn1 -
它应该显示机器中的所有cpu以及它们的使用百分比。 top -bn1 不工作
-
This how to page 很好地解释了 /proc/stat 文件中的数字的含义。据我了解,
cpu0和cpu1的这些数字是每个 cpu 在每个状态下花费的秒数。我希望来自/proc/stat文件输出的数字与下面的百分比不匹配。
标签: python linux shell centos jsch