top 命令

top 是一个用于实时监控系统进程和资源占用情况的命令行工具,它可以帮助管理员了解系统的运行状态并进行性能分析。

基本语法

bash
top [选项]

常用选项

选项 描述
-d <秒数> 设置更新间隔时间,默认为3秒
-u <用户名> 只显示指定用户的进程
-p <PID> 只显示指定PID的进程
-i 不显示闲置或僵尸进程
-c 显示完整的命令行参数
-b 批处理模式,用于输出到文件或管道
-n <次数> 更新指定次数后退出
-H 显示线程而不是进程
-o <字段> 按指定字段排序

输出解释

顶部系统摘要信息

text
top - 14:30:45 up 2 days, 18:45,  1 user,  load average: 0.45, 0.32, 0.28
Tasks: 156 total,   1 running, 154 sleeping,   0 stopped,   1 zombie
%Cpu(s):  5.2 us,  2.3 sy,  0.0 ni, 91.8 id,  0.7 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7951.1 total,   1234.5 free,   4567.8 used,   2148.8 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   3012.3 avail Mem
字段 描述
14:30:45 当前系统时间
up 2 days, 18:45 系统运行时间
1 user 当前登录用户数
load average: 0.45, 0.32, 0.28 系统平均负载(1分钟、5分钟、15分钟)
Tasks: 156 total 总进程数
1 running 正在运行的进程数
154 sleeping 睡眠的进程数
0 stopped 停止的进程数
1 zombie 僵尸进程数
%Cpu(s): CPU使用率分布
us 用户空间CPU使用率
sy 系统空间CPU使用率
ni 优先级调整后的进程CPU使用率
id 空闲CPU使用率
wa 等待I/O的CPU使用率
hi 硬件中断CPU使用率
si 软件中断CPU使用率
st 虚拟机被偷走的CPU使用率
MiB Mem: 物理内存使用情况
MiB Swap: 交换空间使用情况

进程列表信息

列名 描述
PID 进程ID
USER 进程所有者
PR 进程优先级
NI nice值(优先级调整值)
VIRT 虚拟内存使用量
RES 物理内存使用量(驻留集大小)
SHR 共享内存大小
S 进程状态(R=运行, S=睡眠, D=不可中断睡眠, T=停止, Z=僵尸)
%CPU CPU使用率
%MEM 内存使用率
TIME+ 进程累计CPU时间
COMMAND 进程命令

交互命令

在top运行时,可以使用以下键盘命令进行交互操作:

命令 描述
h? 显示帮助信息
k 杀死进程(需要输入PID)
r 调整进程优先级(需要输入PID和nice值)
f 自定义显示字段
o 改变排序字段
u 过滤指定用户的进程
i 切换显示闲置进程
c 切换显示完整命令行
t 切换CPU状态显示格式
m 切换内存状态显示格式
1 显示所有CPU的详细使用率
s 调整更新间隔时间
q 退出top

常用示例

基本使用

bash
top

显示所有进程的实时状态。

设置更新间隔为1秒

bash
top -d 1

只显示指定用户的进程

bash
top -u root

只显示指定PID的进程

bash
top -p 1234 -p 5678

显示完整命令行

bash
top -c

按内存使用率排序

在top交互界面中按 M(大写),或使用命令:

bash
top -o %MEM

按CPU使用率排序

在top交互界面中按 P(大写),或使用命令:

bash
top -o %CPU

批处理模式输出到文件

bash
top -b -n 5 > top_output.txt

将5次更新的结果输出到文件。

显示线程信息

bash
top -H -p 1234

显示指定PID进程的所有线程。

高级技巧

实时监控特定进程

bash
top -d 2 -p $(pgrep -d',' nginx)

实时监控nginx进程,每2秒更新一次。

显示进程树

在top交互界面中按 V(大写)可以显示进程树结构。

保存自定义视图

在top交互界面中:

  1. 使用 f 选择要显示的字段
  2. 使用 o 设置排序字段
  3. 使用 W(大写)保存当前配置到~/.toprc文件

使用正则表达式过滤进程

bash
top -c | grep -i nginx

查看最耗CPU的进程

bash
top -b -n 1 | head -20

退出命令

q 键退出top命令。

注意事项

  • top命令会消耗一定的系统资源,长时间运行可能影响系统性能
  • 对于高负载系统,建议适当增加更新间隔时间
  • 批处理模式(-b)适合用于脚本自动化监控
  • 僵尸进程(Z状态)通常需要通过终止其父进程来清理
最后更新:2026-02-07