1. 写在前面
本文主要简单介绍 Linux 下通过命令行工具,如:top
、mpstat
、sar
、iostat
等检查 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