Linux top 命令实战示例

LinuxLinuxBeginner
立即练习

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

介绍

在本实验中,我们将探索 Linux 的 top 命令,这是一个用于监控系统性能和资源利用的强大工具。我们将从了解 top 命令的基本功能开始,包括它显示有关运行进程、CPU、内存和其他系统资源的实时信息的能力。然后,我们将深入研究各种选项和自定义功能,以便根据我们的特定需求调整 top 命令的输出,从而有效地分析系统性能并识别潜在的瓶颈。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/free("Memory Reporting") subgraph Lab Skills linux/ps -.-> lab-422961{{"Linux top 命令实战示例"}} linux/top -.-> lab-422961{{"Linux top 命令实战示例"}} linux/free -.-> lab-422961{{"Linux top 命令实战示例"}} end

理解 top 命令

在这一步中,我们将学习 top 命令,这是一个用于监控 Linux 系统性能和资源利用的强大工具。top 命令提供了有关运行进程、CPU、内存和其他系统资源的实时信息。

让我们从运行 top 命令开始:

$ top

示例输出:

top - 14:22:37 up 1 day, 12:34,  0 users,  load average: 0.00, 0.01, 0.05
Tasks: 101 total,   1 running,  99 sleeping,   1 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1992.0 total,   1537.0 free,    235.0 used,    220.0 buff/cache
MiB Swap:   2047.9 total,   2047.9 free,      0.0 used.   1555.3 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
     1 root      20   0    8788   5688   3828 S   0.0   0.3   0:02.14 systemd
     2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
     3 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
     4 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
     5 root      20   0       0      0      0 I   0.0   0.0   0:00.00 slub_flushwq

top 命令显示了各种系统信息,包括:

  • Uptime(运行时间):系统自上次启动以来的时间。
  • Tasks(任务):运行中、睡眠中、停止中和僵尸进程的总数。
  • CPU 利用率:在用户模式、系统模式、nice 模式、空闲、等待、硬件中断和软件中断中花费的 CPU 时间百分比。
  • 内存使用情况:总内存、空闲内存、已用内存和缓冲/缓存内存。
  • Swap 使用情况:总交换空间、空闲交换空间和已用交换空间。
  • 进程列表:按 CPU 或内存使用情况排序的最消耗资源的进程列表。

你可以通过按下各种键来自定义 top 命令的输出,例如:

  • h:显示帮助菜单
  • 1:在每 CPU 和聚合 CPU 利用率之间切换
  • f:管理显示的列
  • o:自定义排序顺序
  • u:按特定用户过滤进程

要退出 top 命令,请按 q

探索 top 命令的选项和自定义功能

在这一步中,我们将探索 top 命令中可用的各种选项和自定义功能,以便根据你的特定需求调整输出。

让我们从显示帮助菜单开始:

$ top -h

这将显示所有可用选项及其描述。一些常用的选项包括:

  • -d:设置更新之间的延迟(默认是 3 秒)
  • -n:指定迭代次数(默认是无限次)
  • -p:监控特定的进程 ID
  • -u:显示特定用户拥有的进程
  • -o:按特定列对进程列表进行排序

例如,要显示按内存使用排序的前 5 个进程,可以运行:

$ top -o %MEM -n 5

示例输出:

top - 14:30:37 up 1 day, 12:42,  0 users,  load average: 0.00, 0.00, 0.00
Tasks: 101 total,   1 running,  99 sleeping,   1 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1992.0 total,   1537.0 free,    235.0 used,    220.0 buff/cache
MiB Swap:   2047.9 total,   2047.9 free,      0.0 used.   1555.3 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
     1 root      20   0    8788   5688   3828 S   0.0   0.3   0:02.14 systemd
     2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
     3 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
     4 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
     5 root      20   0       0      0      0 I   0.0   0.0   0:00.00 slub_flushwq

你还可以通过在 top 命令中按下 f 键来自定义显示的列。这将允许你添加、删除或重新排列列,以满足你的需求。

要退出 top 命令,请按 q

使用 top 分析系统性能

在这最后一步中,我们将使用 top 命令来分析系统性能,并识别任何潜在的瓶颈或问题。

让我们从监控系统的整体性能开始:

$ top

注意以下关键指标:

  • CPU 利用率:在用户模式、系统模式、nice 模式、空闲、等待、硬件中断和软件中断中花费的 CPU 时间百分比。高 CPU 利用率可能表明存在 CPU 密集型进程或应用程序。
  • 内存使用情况:总内存、空闲内存、已用内存和缓冲/缓存内存。高内存使用率可能表明存在内存密集型进程或潜在的内存泄漏。
  • Swap 使用情况:总交换空间、空闲交换空间和已用交换空间。过度的 Swap 使用可能表明物理内存不足。
  • 进程列表:按 CPU 或内存使用情况排序的最消耗资源的进程列表。识别任何消耗大量系统资源的进程。

要进一步调查特定进程,你可以使用以下选项:

  • k:终止一个进程
  • r:调整进程的优先级(renice)
  • f:管理显示的列
  • o:自定义排序顺序

例如,要查看按 CPU 使用率排序的前 5 个进程:

$ top -o %CPU -n 5

示例输出:

top - 14:36:37 up 1 day, 12:48,  0 users,  load average: 0.00, 0.00, 0.00
Tasks: 101 total,   1 running,  99 sleeping,   1 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1992.0 total,   1537.0 free,    235.0 used,    220.0 buff/cache
MiB Swap:   2047.9 total,   2047.9 free,      0.0 used.   1555.3 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
     1 root      20   0    8788   5688   3828 S   0.0   0.3   0:02.14 systemd
     2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
     3 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
     4 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
     5 root      20   0       0      0      0 I   0.0   0.0   0:00.00 slub_flushwq

这将帮助你识别任何消耗大量 CPU 资源的进程。

要退出 top 命令,请按 q

总结

在本实验中,我们首先学习了 top 命令,这是一个用于监控 Linux 系统性能和资源利用的强大工具。我们探索了 top 命令显示的各种系统信息,包括运行时间、任务统计、CPU 和内存使用情况,以及最消耗资源的进程列表。我们还学习了如何通过使用不同的键来自定义 top 命令的输出,例如在每 CPU 和聚合 CPU 利用率之间切换、管理显示的列以及自定义进程列表的排序顺序。

Linux 命令速查表