![获取 Linux 上的 CPU 使用率](https://linux22.com/image/1524455/%E8%8E%B7%E5%8F%96%20Linux%20%E4%B8%8A%E7%9A%84%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87.png)
我搜索了网络,但没有找到令人满意的解决方案。有没有什么好方法可以获取整个 CPU 和所有进程的平均 CPU 利用率?比如 Windows 任务管理器。
当系统启动 Minecraft 服务器时,我尝试了以下命令。当运行 Raspberry Pi 时,这是一项相当繁重的任务:
echo $[100-$(vmstat 1 2|tail -1|awk '{print $15}')]
如果我每秒运行一次该命令,我就会得到从 0% 到 80% 的所有内容。不确定它是否可靠。
cat <(grep 'cpu ' /proc/stat) <(sleep 1 && grep 'cpu ' /proc/stat) | awk -v RS="" '{print ($13-$2+$15-$4)*100/($13-$2+$15-$4+$16-$5)}'
这只能给出 0% 到 2% 之间的结果
grep -P '^processor' /proc/cpuinfo|wc -l
从未超过 25%,我也觉得不太可能
我读到过“top”并不显示实际的 CPU 使用率,而是显示刷新之间或其他时间的 CPU 使用率。
还有其他方法吗?最好是一个不需要安装任何东西的解决方案。
答案1
CPU 使用率的准确性取决于在读数之间保留 CPU 状态,以便获得整个时间段的使用率。大多数解决方案仅获取读数完成时的使用率,或者对任意时间段进行平均。
如果您真的需要准确性,则需要经常测量并集中结果。这样您甚至可以检测到峰值。取决于许多因素,请注意,CPU 使用率不超过 25% 并不异常。
对于进程,您必须使用 PID。查看一些实用的解决方案这里 。