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 |
添加或删除显示的列 |
o 或 O |
更改显示顺序 |
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
键保存您的自定义配置