Linux 如何使用命令行检查CPU利用率
监控Linux系统的性能对确保其正常运行至关重要。确定系统性能的关键因素之一是CPU利用率。
CPU利用率指的是处理器在系统上执行各种进程和应用程序指令的时间百分比。在Linux上,有许多工具可用于监控CPU利用率,但使用命令行工具可以快速高效地检查这个指标。
检查CPU利用率的基本命令行工具
在Linux的命令行中监控CPU利用率时,有几个选项可供选择。让我们从一些基本工具开始,这些工具在大多数Linux发行版中都可用。
Top: 概述 top 命令以及如何使用它检查 CPU 利用率
top命令是一个强大的用于监控系统进程的工具,包括CPU利用率。当你运行top命令时,你将会看到一个按照默认方式(根据CPU使用率以及其他指标,如内存使用率)排序的运行进程列表。
你可以随时按下’q’键退出。要按其他条件(如内存使用率或进程ID)对进程进行排序,按下’F’键并选择所需的排序选项。
$ sudo top
输出
top - 12:34:56 up 1 day, 00:00:00, 1 user, load average: 0.50, 0.75, 0.80
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 10.5 us, 3.8 sy, 0.0 ni, 84.1 id, 1.6 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3963.2 total, 1023.2 free, 2056.7 used, 883.3 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 1523.4 avail Mem
Htop:Htop 简介,一种比 top 更高级且具有额外功能的版本
如果你正在寻找比 top 更高级但仍然相当简单易用的工具,那么 Htop 可能正是你需要的。Htop 在功能上类似于 top,但还附带了一些额外的功能,使其更加有用。
例如,Htop 允许根据名称或状态对进程进行筛选,并且可以显示与特定进程组关联的所有线程。要使用 Htop,只需在终端中键入 “htop” 并按下回车键。
$ sudo htop
输出结果
1 [||||| 18.6%] Tasks: 195, 16 thr; 1 running
2 [||||| 17.2%] Load average: 0.74 0.89 0.93
3 [||||| 16.9%] Uptime: 2 days, 3 hours, 15 mins
4 [|||||| 21.8%]
5 [||||| 18.7%] Mem[||||||||||||||| 1.67G/7.79G]
6 [|||| 12.4%] Swp[| 0K/0K]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
1370 root 20 0 3.1G 437M 136M S 10.1 5.6 12:48.24 /usr/bin/compiz
2398 john 20 0 1.8G 272M 76M S 8.3 3.5 5:21.53 /usr/bin/firefox
Glances:概述Glances,一款综合系统监控工具,包括CPU利用率信息
Glances是一个比top或htop更全面的系统监控工具。它提供了关于系统性能的实时信息,包括CPU利用率。
Glances还提供有关磁盘使用情况、网络活动和内存使用情况的信息。要使用glances,只需在终端中键入”glances”并按回车。
$ glances
输出
CPU: [##### ] 45.2%
总的来说,这些基本工具应该可以为您提供足够的功能,在大多数Linux系统上监控CPU利用率。然而,如果您需要更高级的功能,比如进程追踪或分析,您可能需要考虑一些我们将在下面介绍的更专门的工具。
用于检查CPU利用率的高级命令行工具
Perf:性能分析的强大工具
Perf是一个强大的性能分析工具,可用于监控和分析系统性能的各个方面,包括CPU利用率。它提供了广泛的功能,用于分析应用程序、内核跟踪和硬件事件监测。Perf可以帮助识别CPU使用瓶颈,追踪硬件问题并优化系统性能。
要使用perf,您需要在Linux系统上安装perf工具。您可以使用您的发行版的软件包管理器进行安装。
$ perf stat -e cpu-clock python my_script.py
Performance counter stats for 'python my_script.py':
10,387,682,725 cpu-clock (msec) # CPU clock cycles
0.498089 seconds time elapsed
Sysstat:跟踪系统活动
Sysstat是包括sar(系统活动报告器)在内的一组工具,可用于收集和报告系统活动,包括CPU利用率随时间变化。Sar收集各种系统统计数据,如CPU使用情况,内存使用情况,磁盘I/O操作,网络流量等。
要使用sar,您需要在Linux系统上安装sysstat软件包。您可以使用分发包管理器进行安装。
安装完成后,sar会自动在后台运行,并定期收集数据。您可以使用’sar’命令查看sar报告,后面可以跟随各种选项,如时间范围(-s start_time -e end_time)或输出格式(-o output_file)。
$ sar -u 1 5
输出
Linux 5.4.0-81-generic (hostname) 06/17/23 _x86_64_ (2 CPU)
07:36:19 AM CPU %user %nice %system %iowait %steal %idle
07:36:20 AM all 3.25 0.00 0.75 0.00 0.00 95.00
07:36:21 AM all 2.50 0.00 0.50 0.00 0.00 97.00
07:36:22 AM all 1.50 0.00 0.50 0.00 0.00 98.00
07:36:23 AM all 2.50 0.00 0.00 0.00 0.00 97.50
07:36:24 AM all 3.50 0.00 0.00 0.00 0.00 96.50
Average: all 2.85 0.00 0.35 0.00 0.00 96.90
检查CPU利用率的细分主题
使用awk或grep命令与top或htop输出一起过滤和提取关于CPU使用的特定信息
虽然top和htop命令可以提供对系统CPU利用率的整体洞察力,但有时我们可能需要进一步深入,并提取更具体的信息。这就是awk和grep的威力所在。这些命令可以根据特定的条件过滤top或htop输出,如按进程名称排序或仅显示活动进程。
例如,如果我们想要仅显示使用超过某个特定CPU使用率阈值的进程,我们可以使用以下命令:
$ top -b -n 1 | awk '{if ($9 > 10) print}'
这个命令将只显示CPU使用率大于10%的进程。我们还可以结合grep命令和Top过滤特定的进程名称。
使用Pidstat或ps命令监控单个进程
通常情况下,仅监控整个系统的CPU利用率是不够的。有时我们需要关注可能使用过多CPU资源的单个进程。
这就是pidstat发挥作用的地方。pidstat命令允许我们监控单个进程的统计信息,包括CPU利用率随时间的变化。
要监控特定进程,只需运行以下命令 –
$ pidstat -p [process id] [interval] [count]
这将为我们提供关于特定进程在给定时间间隔内在指定计数中资源消耗的详细报告。或者,我们可以使用ps命令以及其aux选项,该选项提供有关所有正在运行的进程的详细信息,包括它们的PID和其他相关详细信息,如内存/CPU使用情况等。
$ ps aux
通过将这些专业子主题与基本工具(如top和htop)结合使用,我们可以更深入地了解系统的CPU利用率,并采取措施优化其性能。
结论
使用命令行工具检查Linux的CPU利用率可以提供有关系统性能的有价值信息,帮助诊断进程或组的问题。虽然基本工具如top和htop对大多数用户提供了足够的信息,但高级工具如perf或sysstat可以提供更详细的性能指标。
通过理解用户、系统和空闲时间等小细节,并使用适当的命令行工具来检查CPU利用率,系统管理员或用户可以使其系统始终正常运行,并在故障排除性能问题时做出明智决策。总体而言,定期监控CPU利用率将确保您充分利用资源,同时让程序尽可能平稳地运行!