> 软件包与系统管理 > top

top 命令指南:实时系统进程监控

`top` 命令(进程表)是用于在 Linux 和 Unix 系统中实时监控系统进程活动的工具。它提供了关于 CPU 使用率、内存使用量、正在运行的进程列表等系统当前状态的动态概述,对于诊断性能问题和了解系统资源使用情况至关重要。通过本指南,您可以学习 `top` 命令的基本用法和交互功能。

top 概述

`top` 定期更新并显示系统资源(CPU、内存、交换区)使用情况和各个进程的详细信息。通过它,您可以轻松识别哪些进程占用了大量系统资源,并监控系统的整体健康状态。

top 的主要角色

`top` 命令主要用于以下目的:

主要应用领域

  • {'key': '系统监控', 'value': '实时查看 CPU、内存和交换空间的使用情况。'}
  • {'key': '进程管理', 'value': '了解正在运行的进程状态,必要时结束或调整优先级。'}
  • {'key': '性能问题诊断', 'value': '分析系统速度下降或无响应现象的原因。'}
  • {'key': '资源使用优化', 'value': '识别并采取措施处理过度使用资源的进程。'}

top 输出界面构成

`top` 命令主要分为两个部分显示信息:

顶部摘要信息

汇总并显示系统的整体状态。

  • `uptime`: 系统启动以来的经过时间
  • `load average`: 过去 1 分钟、5 分钟、15 分钟的系统平均负载(处于执行队列中的进程数)
  • `Tasks`: 总进程数、正在运行、休眠、停止、僵尸进程数
  • `%Cpu(s)`: CPU 使用率(us: 用户,sy: 系统,ni: nice,id: 空闲,wa: I/O 等待等)
  • `MiB Mem`: 物理内存(RAM)的总量、使用量、空闲空间、缓冲/缓存使用量
  • `MiB Swap`: 交换内存的总量、使用量、空闲空间

底部进程列表

显示每个正在运行的进程的详细信息。该列表默认按 CPU 使用率(%)排序。

  • `PID`: 进程 ID
  • `USER`: 运行进程的用户
  • `PR`: 优先级(Priority)
  • `NI`: Nice 值(用于调整优先级)
  • `VIRT`: 进程使用的虚拟内存总量
  • `RES`: 进程使用的实际物理内存(RAM)量(常驻内存)
  • `SHR`: 进程共享的内存量(共享内存)
  • `S`: 进程状态(R: 正在运行,S: 休眠,Z: 僵尸,T: 停止等)
  • `%CPU`: 进程的 CPU 使用率(实时)
  • `%MEM`: 进程的内存使用率(实时)
  • `TIME+`: 进程使用的总 CPU 时间
  • `COMMAND`: 进程执行命令

`top` vs `htop`

`htop` 是 `top` 的改进版本,提供更友好的用户界面(颜色、鼠标支持)和功能(滚动、搜索、直接结束)。在大多数情况下,`htop` 更加便利。如果未安装 `htop`,可以通过包管理器进行安装(例如:`sudo apt install htop`)。

top 命令选项及交互

`top` 启动时可以指定命令行选项,并且在运行时可以通过各种按键输入执行屏幕显示方式、进程排序、退出等操作。

1. 命令行启动选项

2. top 运行中的交互键

生成的命令:

请尝试组合命令。

描述:

`top` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

通过 `top` 命令的各种应用示例,学习如何实时监控系统资源使用情况并诊断问题。

开始基本系统监控

top

通过最基本的 `top` 命令执行,系统的当前状态和进程列表每 3 秒更新一次。

查看 CPU 使用率最高的 5 个进程(1 秒间隔)

top -d 1 -n 5

`top` 执行后仅更新 5 次,每次间隔 1 秒,然后退出。对于快速识别特定时刻的 CPU 负载原因非常有用。

仅监控特定用户(root)的进程

top -u root

仅过滤显示系统上所有 `root` 用户执行的进程。对于跟踪系统守护进程或服务的资源使用量非常有用。

仅监控特定进程 ID(PID)

top -p 12345

实时监控 PID 为 `12345` 的单个进程的信息。对于精确跟踪特定应用程序的资源消耗非常有用。

按内存使用率排序(运行中的交互)

top # then press Shift + m

`top` 在运行状态下,按 `Shift + m` 键将进程列表按内存使用率高低进行排序。(不能在命令行中直接指定)

结束特定进程(运行中的交互)

top # then press 'k', enter PID, then optionally '9' for SIGKILL

`top` 运行状态下按 `k` 键,将提示输入要结束的进程 PID。输入 PID 后按 `Enter`,默认发送 SIGTERM 信号。要强制结束,请输入信号号 9。


相同类别命令