top命令

top 命令 #

top命令提供了 Linux 系统中运行进程的动态实时视图。它显示系统摘要信息以及当前正在运行的进程列表,按资源使用情况排序。

语法 #

top [选项]

常用选项 #

选项 描述
-b 批处理模式,适合输出到文件或其他程序
-n N 指定更新次数后退出
-d N 设置更新间隔(秒),可以是小数
-p PID 只监控指定 PID 的进程
-u USER 只显示特定用户的进程
-H 显示线程
-i 不显示空闲进程

交互式命令 #

运行top后,可以使用以下键盘命令:

功能
q 退出 top
h? 显示帮助
k 终止进程(需要输入 PID 和信号)
r 重新设置进程优先级(renice)
f 添加或删除显示的列
oO 更改显示顺序
s 更改更新频率
W 保存当前设置
space 立即刷新显示
M 按内存使用排序
P 按 CPU 使用排序(默认)
T 按运行时间排序
c 显示完整命令行
V 树视图(父/子进程)
1 显示所有 CPU 核心的负载

输出解释 #

系统摘要信息(顶部) #

top - 14:28:23 up  6:30,  2 users,  load average: 0.42, 0.36, 0.61
Tasks: 213 total,   1 running, 212 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.9 us,  1.5 sy,  0.0 ni, 92.5 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :  15936.0 total,   7123.8 free,   3145.0 used,   5667.2 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.  12334.8 avail Mem
  • 第 1 行:当前时间、系统运行时间、用户数和平均负载(1 分钟、5 分钟、15 分钟)
  • 第 2 行:进程总数及各状态进程数
  • 第 3 行:CPU 使用情况(us=用户空间、sy=系统空间、ni=优先级调整、id=空闲、wa=等待 IO、hi=硬件中断、si=软件中断、st=虚拟机占用)
  • 第 4 行:物理内存使用情况
  • 第 5 行:交换空间使用情况

进程列表(主体部分) #

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 user      20   0 3245916 211144  89996 S   6.0   1.3   2:13.45 firefox
 5678 user      20   0  743648  56880  38172 S   3.3   0.4   1:23.98 terminal
  • PID:进程 ID
  • USER:进程所有者
  • PR:优先级
  • NI:nice 值(负值表示高优先级,正值表示低优先级)
  • VIRT:虚拟内存大小
  • RES:常驻内存大小(实际使用的物理内存)
  • SHR:共享内存大小
  • S:进程状态(S=睡眠,R=运行,Z=僵尸,D=不可中断睡眠)
  • %CPU:CPU 使用率
  • %MEM:内存使用率
  • TIME+:进程运行时间
  • COMMAND:命令名/命令行

常见用法 #

1. 启动 top 并实时监控系统 #

top

2. 每 3 秒更新一次显示 #

top -d 3

3. 只显示特定用户的进程 #

top -u username

4. 监控特定进程 #

top -p 1234,5678

5. 批处理模式输出到文件 #

top -b -n 1 > system_status.txt

6. 显示所有 CPU 核心的负载 #

启动 top 后,按数字键1

7. 按内存使用排序 #

启动 top 后,按M

8. 按 CPU 使用排序 #

启动 top 后,按P

9. 显示完整命令行 #

启动 top 后,按c

提示 #

  • 使用htop作为top的替代品可以获得更友好的界面和更多功能
  • 使用top的批处理模式(-b)结合watch命令可以定期记录系统状态
  • 使用top -b -n 1 | grep process_name可以快速检查特定进程的资源使用情况
  • 在多核系统上,按1查看每个 CPU 核心的负载非常有用
  • 使用W键保存您的自定义配置