获取 Linux 上的 CPU 使用率

获取 Linux 上的 CPU 使用率

我搜索了网络,但没有找到令人满意的解决方案。有没有什么好方法可以获取整个 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。查看一些实用的解决方案这里

相关内容