![批处理模式下的 top,需要每个核心的 CPU%](https://linux22.com/image/516846/%E6%89%B9%E5%A4%84%E7%90%86%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84%20top%EF%BC%8C%E9%9C%80%E8%A6%81%E6%AF%8F%E4%B8%AA%E6%A0%B8%E5%BF%83%E7%9A%84%20CPU%25.png)
我知道运行 top 后,我可以按下1并获取 CPU 及其利用率百分比的列表。我怀疑我也可以使用 -b 选项在批处理模式下执行此操作,但我不知道怎么做,而且我在手册中找不到它。
我需要定期从 python 程序中读取它,因此它必须处于批处理模式。
答案1
您可以使用配置文件来实现这一点。最简单的方法是打开 top,然后按您想要的方式进行配置。在本例中,这意味着使用1获取每个 CPU 的列表。然后让它用Shift+编写一个W配置文件。之后,每当该用户运行 top 时,它都会使用该配置文件,并且保持相同的外观,即使在批处理模式下也是如此。
$HOME
请注意,如果您通过 cron 或缺少标准登录定义的其他环境使用此功能,则可能需要定义一个变量。
答案2
我不熟悉如何使用 top 来做到这一点,但你可以看看mpstat
哪个会显示每个核心的 CPU 利用率。
答案3
# mpstat -P ALL 1
10:54:41 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
10:54:42 PM all 8.20 0.12 0.75 0.00 0.00 0.00 0.00 0.00 90.93
10:54:42 PM 0 24.00 0.00 2.00 0.00 0.00 0.00 0.00 0.00 74.00
10:54:42 PM 1 22.00 0.00 2.00 0.00 0.00 0.00 0.00 0.00 76.00
10:54:42 PM 2 2.02 1.01 0.00 0.00 0.00 0.00 0.00 0.00 96.97
10:54:42 PM 3 2.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 98.00
10:54:42 PM 4 14.15 0.00 1.89 0.00 0.00 0.00 0.00 0.00 83.96
10:54:42 PM 5 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.00
10:54:42 PM 6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
10:54:42 PM 7 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00