如何在 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”命令后跟各种选项(例如时间范围(-s 开始时间 -e 结束时间)或输出格式(-o 输出文件))来查看 sar 报告。
$ 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 使用率阈值的进程,我们可以使用以下命令与 awk 结合使用:
$ 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 使用率将确保您以最佳方式利用资源,同时使您的程序尽可能流畅地运行!