如何获取具有 1 个或 n 个 CPU 核心的 Linux 机器的总 CPU 使用率?

如何获取具有 1 个或 n 个 CPU 核心的 Linux 机器的总 CPU 使用率?

我目前正在使用下面的方法从 top 命令中提取 CPU 使用空闲值,并从 100 中减去该值。这种方法是否正确,是否有更好的方法来实现相同的目的。

另外,我的 Linux VM 是精简版本,只有很少的基本工具,例如top.安装其他工具不是一个选项,因为包管理器也被删除。

CPU_IDLE="$(top -bn2 | grep -F '%Cpu' | tail -n 4 | gawk '{print $8 $9}' | tr -s '\n\:\,[:alpha:]' ' '| gawk '{print $2}'),"

答案1

是的,你的方法没问题。

但是,你可以使用mpstat以获得更多详细信息。

它包含在系统状态包,如果你没有安装它......

在 CentOS / RHEL 上:

sudo yum install sysstat

在 Ubuntu/Debian 上:

sudo apt-get install sysstat

如果您没有安装软件包的任何权限,请使用以下命令

grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'

相关内容