Linux CPU 利用率

17 Mar 2025 | 4 分钟阅读

确定系统效率的一个方面是 CPU 性能。

监控 CPU 性能对于调试系统进程、做出系统决策、处理系统资源以及实时检查和评估系统至关重要。

有各种工具可用于跟踪和查看 CPU 性能。操作系统包含依赖于这些工具提取性能读数的内置系统调用。现在我们来谈谈出色的 CPU 使用率监控工具以及如何在任何 Linux 发行版中使用它。

使用 Top 检查 CPU 利用率

借助 top 命令,我们可以实时监控系统。当我们执行 top 命令时,它将为我们提供系统摘要以及 Linux 内核当前正在管理的线程和进程列表。它还提供各种选项来更改其行为并执行多项操作。

语法


CPU Utilization in Linux

在上面的输出中,需要关注的主要行是第三行。输出值已简要描述。每个值表示 CPU 花费在执行任务上的时间。

  • us: 进程在“用户空间”中运行所需的时间。
  • sy: sy 是运行“内核空间”进程所花费的时间。
  • ni: ni 是为具有自定义(手动设置)优质值的进程设置所花费的时间。
  • id: id 是空闲时间。
  • wa: wa 表示等待 I/O 请求完成的时间。
  • hi: hi 是服务硬件中断所花费的时间。
  • si: si 是服务软件中断所花费的时间。
  • st: st 是运行虚拟机所损失的时间,也称为“窃取时间”。

使用 htop 命令检查 CPU 利用率

tophtop 命令是相同的。在系统监控方面,两个命令都提供相同的功能。另一方面,htop 命令提供了更好的生活质量体验。htop 的默认显示更用户友好。与 top 相比,htop 的 UI 质量更好。在这个命令中,我们还可以水平和垂直滚动。

在大多数发行版中,top 是默认安装的,而 htop 需要我们手动安装。安装 htop 的最佳方法是使用 snap,因为它可以在任何 Linux 发行版上良好运行。以下是用于安装 htop 的语法

htop 语法


CPU Utilization in Linux

使用 iostat 检查 CPU 利用率

iostat 命令报告 CPU 和 I/O 使用统计信息。此命令非常简单,输出也很简单。尽管如此,它只会报告命令运行时的即时数据。与 top 和 htop 不同,iostat 不提供实时系统监控。

iostat 工具是 sysstat 包的一部分。大多数 Linux 发行版都提供此命令。假设我们已安装 sysstat 包,则运行。

启动 iostat


CPU Utilization in Linux

如果我们想了解更多详细信息,可以使用 -c 标志来检查系统进程的 CPU 使用率、I/O 等待、空闲时间和用户进程。

语法


CPU Utilization in Linux

可以使用 "-x" 标志来获取更多详细统计信息。“-t”标志指定必须显示每个报告的次数。


CPU Utilization in Linux

使用 mpstat 检查 CPU 利用率

mpstat 工具是 sysstat 包的一部分。该工具报告单个处理器或处理器内核的使用情况。

如果我们想使用 mpstat 命令,那么必须在我们的系统中安装 sysstat 包。假设我们已经安装了该包,则继续。

启动 mpstat


CPU Utilization in Linux

现在我们将详细解释每个值,每个值定义了 CPU 在特定阶段的使用情况。

  • %usr: 表示用户级别的 CPU 使用率。
  • %nice: 表示“nice”用户进程的 CPU 使用率。
  • %sys: %sys 表示内核的 CPU 使用率。
  • %iowait: 等待磁盘读/写表示为 %iowait。
  • %irq: 处理硬件中断称为 %irq。
  • %soft: 处理软件中断称为 %soft。
  • %steal: %steal 指等待虚拟机管理器处理虚拟处理器。
  • $idle: %idle 表示空闲。

使用 sar 检查 CPU 利用率

使用 sar 命令,我们可以收集和报告系统活动信息。此命令将为您提供 CPU 利用率的简单简短报告。

Sar 命令还可以用于以固定间隔(秒)提供 CPU 信息。虽然它不是实时报告,但使用它仍然更好。

我们还可以定义 sar 打印输出的次数。在下面的示例中,sar 将以 4 秒的间隔打印输出,共 8 次。


CPU Utilization in Linux

使用 nmon 命令检查 CPU 利用率

nmon 是一个系统管理工具,我们使用它来获取有关 CPU、顶级进程内存等的信息。我们可以使用以下命令安装 nmon 命令


CPU Utilization in Linux
下一个主题Linux 终端