Linux top 命令:实时系统监控

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

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

假设你是一名初级系统管理员,负责维护一台繁忙的 Web 服务器。服务器被报告运行缓慢,你需要确定哪些进程消耗了最多的资源。top 命令将是你进行调查的主要工具,它允许你实时查看和分析系统活动。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") subgraph Lab Skills linux/top -.-> lab-388500{{"Linux top 命令:实时系统监控"}} end

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. 第一行显示当前时间、系统运行时间、用户数量和平均负载。
  2. 第二行显示任务总数及其状态(运行中、睡眠中、已停止、僵尸进程)。
  3. 第三行显示 CPU 使用率百分比。
  4. 第四行和第五行显示内存和交换空间使用情况。
  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:以批处理模式运行(适用于将输出发送到其他程序或文件)
  • -n:在 top 终止之前运行的迭代次数
  • k:从 top 中终止一个进程(通过 PID)
  • r:重新调整进程的优先级
  • c:切换命令名称/行的显示
  • V:显示版本信息

请记住,有效的系统监控对于维护系统性能和稳定性至关重要。定期使用 top 命令可以帮助你在资源相关问题显著影响系统性能之前检测并预防这些问题。