如何在 Linux 中检查 CPU 利用率
CPU的性能是系统性能的主要决定因素之一。为了确保充分利用有限的处理能力,有必要监控该资源的使用方式。监控 CPU 性能有助于调试进程、管理系统资源、做出系统决策以及实时评估系统。
在本指南中,了解如何检查 Linux 中的 CPU 利用率。
Linux 中的 CPU 利用率
CPU 是计算机提供的所有处理能力的主要来源。为了充分利用它,有必要管理和优化其使用。
现代操作系统经过优化,可以尽可能高效地使用 CPU。甚至其他应用程序也经过了相当优化。然而,用户可能并非如此。例如,就我而言,我在玩游戏时会打开数百个浏览器选项卡并运行多个后台任务。虽然所有软件都进行了优化,但我的使用方式会导致CPU负载较高。
如果多个用户登录,那么CPU使用率就会自动变高。然而,系统管理员可能希望密切关注它,以确保有人不会占用所有数据,从而导致整体系统性能和体验不佳。如果某个进程/应用程序导致 CPU 使用率过高,则它可能出现故障、出现错误,或者这就是它的本质。
有时,异常的 CPU 使用率也可能表明存在系统入侵。
根据所有这些信息,检查 CPU 利用率可能会非常有洞察力。
检查 Linux 中的 CPU 利用率
就 Linux 而言,有许多工具可以监控 CPU 使用情况。它具有各种内置系统调用来提取性能读数。有些工具预装在所有 Linux 发行版中,有些可能需要手动安装。
以下所有方法均在 Ubuntu 20.04.1 LTS 上进行演示。然而,它们在任何其他现代发行版上都可以正常工作。
使用top检查CPU利用率
使用top,您可以实时监控系统。它报告系统信息的简要摘要以及当前由 Linux 内核管理的进程和线程的列表。它还提供交互选项来修改其行为并执行各种操作。
最上面的工具可以显示CPU利用率。启动该工具。
在这里,要关注的关键是第三行。简要解释了输出值。每个值都解释了 CPU 执行某项操作所花费的时间量。
us:在“用户空间”中为人们运行进程所花费的时间。
sy:运行“内核空间”进程所花费的时间。
ni:使用自定义(手动设置)nice值运行进程所花费的时间。
id:闲置时间。
wa:等待 I/O 请求完成所花费的时间。
hi:服务硬件中断所花费的时间。
si:服务软件中断所花费的时间。
st:运行虚拟机所损失的时间,也称为“窃取时间”。
现在,您可以使用各种热键对进程列表进行排序和过滤。在这里,我描述了与 CPU 使用率相关的那些。
P:按CPU使用率对进程进行排序。
I:从列表中删除空闲进程。要恢复,请再次按“I”。
M:按内存使用情况对列表进行排序。
S:按进程运行时间对列表进行排序。
U:按所有者过滤进程。
K:杀死一个进程。需要进程的PID。
使用 htop 检查 CPU 利用率
Htop 和 top 本质上是相同的工具。它们在系统监控功能方面都提供相同的功能。然而,htop 提供了更好的生活质量体验。
htop 的默认显示使用起来更舒适。 UI比顶部更清晰。文字颜色丰富,看起来赏心悦目。它还提供水平和垂直滚动。
虽然大多数发行版默认安装了 top,但您必须手动安装 htop。最好使用 snap 安装 htop,因为它可以在任何 Linux 发行版上运行。假设您安装了 snappy(snap 包管理器),请运行以下命令。
启动 htop。
我不会进一步讨论任何内容,因为 htop 的用法与 top 相同。
使用 iostat 检查 CPU 利用率
iostat 工具报告 CPU 和 I/O 使用统计信息。这是一个具有简单输出的简单工具。但是,它只会报告该工具运行时的统计信息。与 top 或 htop 不同,iostat 不提供实时系统监控。
iostat 工具是 sysstat 包的一部分。它几乎可以在任何 Linux 发行版上使用。假设您已经安装了 sysstat 软件包,让我们继续。
启动 iostat。
有兴趣更深入的报告吗?使用“-c”标志查看用户进程、系统进程的 CPU 使用情况、I/O 等待和空闲时间。
使用标志“-x”进行扩展统计。标志“-t”将定义每个报告应显示的次数。
使用 mpstat 检查 CPU 利用率
mpstat 工具是 sysstat 软件包的一部分。该工具报告单个处理器或处理器内核的使用情况。
要使用 mpstat,您必须在系统中安装 sysstat 软件包。假设您已经安装了该软件包,让我们继续。
启动 mpstat。
以下是这些值的含义。每个值都描述了某个级别的 CPU 使用率。
%usr:用户级CPU使用率。
%nice:“nice”用户进程的 CPU 使用率。
%sys:内核的 CPU 使用率。
%iowait:等待磁盘读/写。
%irq:处理硬件中断。
%soft:处理软件中断。
%steal:强制等待处理虚拟处理器的管理程序。
%guest:运行虚拟处理器。
%idle:处于空闲状态。
使用 sar 检查 CPU 利用率
sar 命令用于收集和报告系统活动信息。它提供了有关 CPU 利用率的简短报告。
我们可以使用 sar 以一定的时间间隔(以秒为单位)提供 CPU 信息。虽然它不是实时报告,但仍然更适合使用。
在最后一个示例中,sar 将无限运行。我们可以定义 sar 将打印输出的实例数量。在下面的示例中,sar 将以 5 秒的间隔打印输出,共 10 次。
使用 vmstat 检查 CPU 利用率
vmstat 工具报告各种系统信息,例如系统进程、内存、交换、CPU 性能和 I/O。
运行 vmstat。它将报告运行时的系统信息。
与sar类似,vmstat可以以固定的时间间隔(以秒为单位)报告系统状态。
在最后一步中,vmstat 将无限运行。要在固定时间段内运行 vmstat,请定义运行次数。这里,vmstat 会以 3 秒的间隔报告系统状态,共 10 次。
使用 Glances 检查 CPU 利用率
Glances 是监控系统状态的强大工具。它是用 Python 编写的,使用 psutil 库来获取各种系统信息。 Glances 提供大量深入的系统信息,例如 CPU 监控、内存、网络使用情况、磁盘 I/O、进程和文件系统利用率等。请查看 GitHub 上的 Glances。
安装 Glances 是一项简单的任务。以下方法适用于任何 GNU/Linux 发行版。您所需要的只是在系统中安装curl 或wget。 Glances 将安装所有必要的依赖项。
$ wget -O- https://bit.ly/glances | /bin/bash
Glance 也可以作为快照包提供。假设您的系统中安装了 snappy(snap 包管理器),请从 Snapcraft 安装 Glances snap。查看 Snapcraft 概览。
使用 Glances 非常简单。要启动独立模式,请运行以下命令。
Glances 还提供在 Web 服务器模式下运行。要启动网络服务器,请运行以下命令。
要访问服务器,请访问以下 URL。
对于原始信息输出,Glances 可以将输出打印到 STDOUT。
最后的想法
有很多方法可以获取 CPU 利用率。虽然所有这些都工作得很好,但根据您的需要,您可能必须坚持使用其中的一些。如果您是系统管理员,那么掌握 top/htop 和 Glances 可以提供最大的灵活性。如果您只是想快速更新系统资源消耗,那么其他方法可以提供更好的体验。
检查 CPU 利用率很好而且很有用。然而,为了确保稳定性,有必要验证您的系统即使在最大压力下也能正常运行。查看一些有用的 Linux 应用程序来进行压力测试和 CPU 性能基准测试。
快乐计算!