如何使用简单命令检查 Linux 中 CPU 利用率

1. 写在前面

本文主要简单介绍 Linux 下通过命令行工具,如:topmpstatsariostat 等检查 CPU 利用率,整体衡量系统性能。

2. 如何从 Linux 命令行检查 CPU 利用率

2.1 top – 查看 Linux CPU 负载

打开终端,执行命令:

root@dev:~# top
--------------------------------------------------------------------------------------
top - 11:43:50 up 3 days,  1:54,  1 user,  load average: 0.00, 0.03, 0.00
Tasks: 225 total,   1 running, 224 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.9 us,  0.5 sy,  0.0 ni, 98.4 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
MiB Mem :  15997.4 total,    333.6 free,   4317.2 used,  11346.6 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  11289.4 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   2158 root      20   0  646356 288832  54284 S   1.0   1.8  49:05.34 celery
   1815 systemd+  20   0  325904 280988   4404 S   0.7   1.7  20:06.46 redis-server
   2114 root      20   0  647680 290208  54156 S   0.7   1.8  14:20.94 celery
   2390 root      20   0  718904 296672  56624 S   0.7   1.8  18:33.03 celery
   2924 root      20   0  648260 288208  53704 S   0.7   1.8   9:22.55 gunicorn
   2925 root      20   0  648288 288288  53748 S   0.7   1.8   9:23.11 gunicorn
  59516 root      20   0       0      0      0 I   0.7   0.0   0:21.62 kworker/0:2-events
  60944 root      20   0   11172   3936   3248 R   0.7   0.0   0:00.04 top
    836 root      20   0 3202356  84336  53388 S   0.3   0.5  13:07.00 dockerd

显示当前正在运行的所有进程的列表,同时还会显示用户、任务、CPU 负载和内存使用情况。随着任务进程以及负载情况,列表实时将会实时刷新。

增加:-i 选项,可以隐藏所有空闲进程,从而更容易对列表进行排序。

root@dev:~# top -i
--------------------------------------------------------------------------------------
top - 18:49:53 up 5 days, 9:00, 1 user, load average: 0.01, 0.06, 0.01
Tasks: 222 total, 1 running, 221 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.2 sy, 0.0 ni, 99.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15997.4 total, 241.8 free, 4540.7 used, 11215.0 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 11065.9 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2158 root 20 0 646372 288900 54284 S 1.0 1.8 85:37.43 celery
10 root 20 0 0 0 0 I 0.3 0.0 5:12.28 rcu_sched
836 root 20 0 3202356 84336 53388 S 0.3 0.5 22:21.36 dockerd
1815 systemd+ 20 0 530704 490780 4200 S 0.3 3.0 34:54.81 redis-server
2012 root 20 0 646700 290348 54348 S 0.3 1.8 27:21.05 celery
2322 root 20 0 44380 37524 11576 S 0.3 0.2 1:35.53 gunicorn
2390 root 20 0 718904 296672 56624 S 0.3 1.8 32:40.11 celery
2924 root 20 0 648260 288208 53704 S 0.3 1.8 16:22.26 gunicorn
2925 root 20 0 648288 288288 53748 S 0.3 1.8 16:23.15 gunicorn

对比没有任何参数 top, 可以明显看到进程列表减少,更加直观显示。退出输入q 即可,也可以 CTRL + C;

要获得 top 的帮助信息,可以在运行时按字母 h,或在命令行中输入以下内容:

man top

2.2 mpstat – 显示活动 CPU

mpstat 是名为 sysstat 的软件包的一部分。大多数基于 RHEL 的发行版都包含该软件包。

对于 Debian 和 Ubuntu 系统,需要安装 sysstat 软件包,如下:

sudo apt-get install sysstat

如果系统是 4.x 或更旧版本的 CentOS 或 Red Hat 衍生版本,可以使用 up2date 安装 sysstat

sudo up2date install sysstat

对于 CentOS 或 Red Hat 的较新(5.x 及更高版本)版本,可使用以下命令安装 sysstat:

sudo yum install sysstat

使用 mpstat 命令,如下所示:

root@dev:~# mpstat
--------------------------------------------------------------------------------------
Linux 5.4.0-169-generic (dev) 01/14/24 _x86_64_ (4 CPU)

18:58:22 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
18:58:22 all 1.03 0.01 0.24 0.07 0.00 0.04 0.01 0.00 0.00 98.60

系统将显示每个CPU(或CPU内核)的使用情况。

第一行标签,第二行对应值:

  • %usr – 用户层面 CPU 使用率;

  • %nice – 标记为“nice”用户进程的 CPU 使用率;

  • %sys – 系统(Linux 内核)级 CPU 使用率;

  • %iowait – CPU 使用率空闲等待磁盘读/写;

  • %irq – 处理硬件中断时的 CPU 占用率;

  • %soft – 处理软件中断的 CPU 占用率;

  • %steal – 被迫等待管理程序处理其他虚拟处理器的 CPU 占用率;

  • %guest – 运行虚拟处理器的 CPU 占用率;

  • %idle – 空闲 CPU 使用率(无进程,且不等待磁盘读/写);


使用 -P 选项指定单个处理器:

root@dev:~# mpstat -P 0
--------------------------------------------------------------------------------------
Linux 5.15.0-78-generic (dev) 01/14/2024 _x86_64_ (80 CPU)

07:10:00 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
07:10:00 PM 0 19.41 0.00 5.26 0.21 0.00 1.55 0.00 0.03 0.00 73.54

显示第一个处理器(CPU 0)。

使用 –P ALL 显示总进程数,像基本的 mpstat 命令一样,还会按单个 CPU 列出进程。

root@dev:~# mpstat -P ALL
--------------------------------------------------------------------------------------
Linux 5.15.0-78-generic (dev) 01/14/2024 _x86_64_ (80 CPU)

07:12:22 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
07:12:22 PM all 14.09 0.00 5.08 0.51 0.00 0.49 0.00 0.08 0.00 79.75
07:12:22 PM 0 19.41 0.00 5.26 0.21 0.00 1.55 0.00 0.03 0.00 73.54
07:12:22 PM 1 15.52 0.00 5.92 0.59 0.00 0.86 0.00 0.06 0.00 77.05
07:12:22 PM 2 16.07 0.00 5.45 0.42 0.00 0.42 0.00 0.10 0.00 77.54
07:12:22 PM 3 15.21 0.00 5.47 0.56 0.00 0.73 0.00 0.06 0.00 77.96
07:12:22 PM 4 13.41 0.00 4.82 0.42 0.00 0.33 0.00 0.07 0.00 80.94
... ...

mpstat 命令只能获取当前 CPU 使用情况。要持续监控,需使用一个数字表示时间间隔,另一个数字表示报告次数:

root@dev:~# mpstat 5 7
--------------------------------------------------------------------------------------
Linux 5.15.0-78-generic (dev) 01/14/2024 _x86_64_ (80 CPU)

07:14:45 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
07:14:50 PM all 11.78 0.00 4.58 1.03 0.00 0.23 0.00 0.04 0.00 82.34
07:14:55 PM all 10.49 0.00 4.22 0.27 0.00 0.30 0.00 0.05 0.00 84.67

此示例将生成 7 条记录,每个记录间隔 5 秒。

2.3 sar – 显示 CPU 使用率

sar 是一个管理系统资源的实用工具,并不局限于 CPU 的使用情况,但可以使用 -u 选项来跟踪 CPU 性能。

例如:使用以下命令,在指定的间隔时间内监控 CPU 使用情况:

root@dev:~# sar -u 5
--------------------------------------------------------------------------------------
Linux 5.15.0-78-generic (dev) 01/14/2024 _x86_64_ (80 CPU)

07:18:13 PM CPU %user %nice %system %iowait %steal %idle
07:18:18 PM all 15.12 0.00 5.24 0.27 0.00 79.36
07:18:23 PM all 16.08 0.00 5.87 0.11 0.00 77.95
07:18:28 PM all 15.23 0.00 5.01 0.46 0.00 79.31

-u 选项,指定显示 CPU 使用情况。5 表示每 5 秒显示一次,要结束,请按 Ctrl-C

2.4 iostat – 用于平均使用情况

root@dev:~# iostat
--------------------------------------------------------------------------------------
Linux 5.15.0-78-generic (dev) 01/14/2024 _x86_64_ (80 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
14.17 0.00 5.57 0.51 0.00 79.76

Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
bcache0 26.11 966.35 138.03 0.00 262177976 37447224 0
bcache1 22.15 566.66 208.06 0.00 153739648 56447736 0
bcache2 30.99 1051.43 211.96 0.00 285260620 57506212 0

显示自上次启动以来平均 CPU 使用率,同时还会显示磁盘 IO 负载。

2.5  nmon 监测工具

nmon 是由 IBM 的 Nigel Griffiths 开发的一款监控工具。要在 Ubuntu 上安装 Nmon,命令如下:

sudo apt-get install nmon

要安装到 CentOS,请输入以下内容:

sudo yum epel-release
sudo yum install nmon

启动 nmon 的命令是:

nmon

要查看 CPU 使用率,请按 c,要查看命令列表,请按 h,要退出,请按 q

3 结论

在 Linux 中,有许多不同的方法可以检查 CPU 使用率。本文概述了使用 Linux 内置工具或第三方应用程序的主要方法。这些命令将帮助跟踪处理器的使用情况和系统性能,能够更好地进行控制。

感谢您花时间阅读文章!

收藏本站不迷路!


原文始发于微信公众号(滑翔的纸飞机):如何使用简单命令检查 Linux 中 CPU 利用率

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/260851.html

(0)
土豆大侠的头像土豆大侠

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!