Linux top 命令:实时系统监控

LinuxBeginner
立即练习

介绍

欢迎来到 Linux top 命令实验。在本实验中,你将学习如何使用 top 命令实时监控系统进程和资源占用情况。这项技能对于系统管理员、开发人员以及任何需要了解和管理系统性能的人员来说都至关重要。

想象你是一名初级系统管理员,负责维护一台繁忙的 Web 服务器。据报告该服务器运行缓慢,你需要找出哪些进程消耗了最多的资源。top 命令将是你进行此次调查的主要工具,它能让你实时查看并分析系统活动。

top 命令的基本用法

让我们先从运行最简单的 top 命令开始。这将为我们提供系统进程的实时动态视图。

打开终端并运行以下命令:

top

你应该会看到类似如下的显示界面:

top - 14:30:23 up  5:10,  1 user,  load average: 0.15, 0.22, 0.28
Tasks: 213 total,   1 running, 212 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.3 system,  0.0 ni, 96.3 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7824.9 total,   2576.8 free,   2935.0 used,   2313.1 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4558.1 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 user      20   0 3626108 205008  89380 S   2.0   2.6   0:45.85 gnome-shell
 5678 user      20   0  859492  51528  38060 S   1.3   0.6   0:10.91 Xorg
 9101 user      20   0  722816  36096  29088 S   0.7   0.5   0:05.62 gnome-terminal

该显示内容会持续更新(默认每 3 秒更新一次)。让我们来分析一下所看到的内容:

  1. 第一行显示当前时间、系统运行时间、登录用户数以及平均负载(load average)。
  2. 第二行显示任务(进程)总数及其状态(运行中、睡眠中、已停止、僵尸进程)。
  3. 第三行显示 CPU 使用率百分比。
  4. 第四行和第五行显示内存(Memory)和交换空间(Swap)的使用情况。
  5. 下方的表格显示了各个进程的信息,默认按 CPU 使用率排序。

要退出 top,请按「q」键。

在 top 中对进程排序

默认情况下,top 按 CPU 使用率对进程进行排序。但是,你可以在运行时实时更改排序方式。让我们探索如何改为按内存使用率排序。

  1. 运行 top 命令:
top
  1. top 运行时,按下大写的「M」键。这将使进程按内存使用率(常驻内存大小)而非 CPU 使用率进行排序。

你现在应该看到进程重新排列了,内存占用最高的进程排在列表最前面。

  1. 若要重新按 CPU 使用率排序,请按下大写的「P」键。

  2. 若要按进程 ID(PID)排序,请按下大写的「N」键。

  3. 若要反转当前的排序顺序,请按下大写的「R」键。

请记住,在 top 运行时,你随时可以按「h」或「?」来查看包含所有可用命令的帮助屏幕。

探索完成后,按「q」退出 top

更改更新间隔

默认情况下,top 每 3 秒更新一次显示。不过,你可以更改这个间隔。让我们将其设置为每 1 秒更新一次,以便更频繁地观察变化。

使用 -d 选项运行 top

top -d 1

你现在应该看到显示更新得更加频繁了。当你试图捕捉生命周期极短的进程,或者需要观察系统活动的快速变化时,这非常有用。

top 运行时更改更新间隔:

  1. 按下小写的「d」键。
  2. 输入新的延迟秒数(例如,输入「0.5」表示半秒)。
  3. 按回车键(Enter)。

请注意,极短的更新间隔本身也会消耗可观的 CPU 资源,因此请谨慎使用。

完成后,按「q」退出 top

显示特定用户的进程

作为系统管理员,你可能经常需要监控特定用户的进程。top 命令可以让你轻松实现这一点。

让我们监控当前用户(在本实验环境中为「labex」)的进程:

top -u labex

你现在应该只能看到所属用户为「labex」的进程。

当你尝试排查与特定用户活动相关的故障,或者在多用户系统中只想关注自己的进程时,此功能特别有用。

观察完成后,按「q」退出 top

仅显示活跃进程

有时,你可能只想关注活跃的进程而忽略闲置的进程。top 命令为此提供了一个选项。

使用 -i 选项运行 top

top -i

此命令将仅显示活跃进程,过滤掉自上次更新以来 CPU 使用率为零的所有进程。

当你试图识别当前哪些进程正在消耗资源,而不希望被大量闲置进程干扰时,这会非常有用。

观察完成后,按「q」退出 top

总结

恭喜你!你已经完成了关于使用 top 命令进行实时系统监控的实验。让我们回顾一下你学到的内容:

  1. top 命令的基本用法,用于显示系统进程和资源占用。
  2. 如何在 top 内部按不同标准(CPU 使用率、内存使用率、PID)对进程进行排序。
  3. 更改 top 的更新间隔以获得更频繁或更稀疏的更新。
  4. 监控特定用户的进程。
  5. 仅显示活跃进程,过滤掉闲置进程。

这些技能对于监控和管理系统资源非常宝贵,尤其是在需要识别性能瓶颈或排查系统问题的场景中。

以下是一些本实验未涵盖的其他 top 命令选项和交互式命令:

  • -b:以批处理模式运行(适用于将输出发送到其他程序或文件)。
  • -ntop 在终止前执行的循环次数。
  • 「k」:在 top 内部杀死一个进程(通过 PID)。
  • 「r」:重新调整进程的优先级(Renice)。
  • 「c」:切换显示命令名称或完整的命令行。
  • 「V」:显示版本信息。

请记住,有效的系统监控对于维持系统性能和稳定性至关重要。定期使用 top 命令可以帮助你在资源相关问题严重影响系统性能之前发现并预防它们。