📜  Linux 获取每个内核的 cpu 使用率 (1)

📅  最后修改于: 2023-12-03 15:17:23.572000             🧑  作者: Mango

Linux 获取每个内核的 CPU 使用率

在 Linux 系统中,有时我们需要监测每个内核的 CPU 使用率,以便了解系统的负载情况,以及调优系统性能。本文将介绍如何使用 Linux 命令行工具来获取每个内核的 CPU 使用率。

1. 使用 top 命令

top 命令可以用来实时查看系统中每个进程的 CPU 使用率,也可以通过设置选项来查看每个 CPU 内核的使用率。

top -d 1 -n 5 -b | grep 'Cpu(s)' | tail -n 1 | awk '{ print $2+$4+$6 }'
  • -d 1 表示每秒钟更新一次数据;
  • -n 5 表示刷新 5 次数据后退出;
  • -b 表示在非交互模式下运行。

该命令会输出所有 CPU 的总使用率。

2. 使用 mpstat 命令

mpstat 命令可以报告每个 CPU 的使用率及其他统计数据。它是 sysstat 包的一部分,如果你的系统上没有安装该包,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install sysstat

安装完毕后,可以使用以下命令查看每个 CPU 的使用率:

mpstat -P ALL 1 5 | awk '/^Average:/ {print 100-$NF}'
  • -P ALL 表示报告所有 CPU 的统计数据;
  • 1 表示每秒钟更新一次数据;
  • 5 表示刷新 5 次数据后退出。

该命令会输出每个 CPU 的使用率。

3. 使用 top 命令和 pidstat 命令配合

pidstat 命令可以显示每个进程的 CPU 使用率及其他统计数据。如果需要查看每个 CPU 的使用率,则可以将 top 命令和 pidstat 命令配合使用。

top -d 1 -n 5 -b | grep '^\s*[0-9]' | awk '{ print $1 }' | xargs pidstat -u | awk 'BEGIN { FS=" " }; { if ($3 ~ /.[0-9]/) {print 100-$8} }'
  • -d 1 表示每秒钟更新一次数据;
  • -n 5 表示刷新 5 次数据后退出;
  • -b 表示在非交互模式下运行。

该命令会输出每个 CPU 的使用率。

以上就是通过 Linux 命令行工具获取每个内核的 CPU 使用率的方法。通过这些方法,我们可以及时了解系统负载情况,以便对系统进行调优。