top是 Linux 下最常用的实时性能监测工具,相当于 Windows 的“任务管理器”。它不仅能看到哪些进程最耗资源,还能直观地观察 CPU、内存的健康状况。
下面我为你整理了一份从基础到进阶的详细用法指南。
1. 界面信息解读
top界面分为两个主要区域:统计信息区(顶部)和进程列表区(底部)。
统计信息区
- 第一行(任务栏):系统当前时间、运行时间(up)、当前登录用户数、Load Average(负载平均值:1, 5, 15 分钟)。
- 第二行(进程数):总进程数、运行中(running)、休眠中(sleeping)、已停止(stopped)、僵尸进程(zombie)。
- 第三行(CPU 状态):
us(用户空间占用)、sy(内核空间占用)、id(空闲时间)。 - 第四/五行(内存):物理内存(Mem)和交换分区(Swap)的总量、使用量和空闲量。
进程列表区
- PID:进程 ID。
- USER:进程所有者。
- PR/NI:优先级,数字越小优先级越高。
- VIRT/RES/SHR:虚拟内存、实际占用物理内存、共享内存。
- S:进程状态(R=运行,S=睡眠,D=不可中断睡眠,Z=僵尸)。
- TIME+:累计使用的 CPU 时间。TIME+ 的显示格式通常是:分:秒.百分之一秒。
2. 交互式快捷键(运行中按键)
这是top的灵魂,掌握这些按键可以让你快速定位问题。
| 按键 | 功能描述 |
|---|---|
| P | 按CPU 使用率排序(默认)。 |
| M | 按内存占用排序。 |
| T | 按累计时间 (TIME+)排序。 |
| 1 | 展开或收起多核 CPU的具体详情。 |
| k | 杀掉进程。按k后输入 PID,再输入信号(通常是 9 或 15)。 |
| u | 过滤用户。输入用户名,只看该用户的进程。 |
| o | 高级过滤。例如输入COMMAND=python。 |
| i | 切换显示。隐藏掉那些正在“偷懒”(闲置)的进程。 |
| c | 显示进程的完整命令行路径,而不仅仅是进程名。 |
| h / ? | 召唤帮助菜单,查看所有快捷键。 |
| q | 退出top。 |
3. 命令行启动参数
在进入top之前,你可以直接带上参数来满足特定需求:
- 指定刷新频率:每 5 秒刷新一次
top -d 5
***监控特定进程:只看 PID 为 479 和 480 的进程top -p 479,480 - 监控特定进程名:只看 COMMAND 为 Daemons 和 cmd_basicmode 的进程
top -p $(pgrep -d',' -i "Daemons|cmd_basicmode")** - 监控特定用户:
top -u root - 批处理模式(常用于将数据导出到文件):
top -b -n 3 > top_report.txt(运行 3 次后自动退出并保存结果)
4. 进阶技巧:自定义显示列
觉得默认显示的列太多或太少?
- 在运行
top时按f。 - 使用上下键移动。
- 按
d或Space开启/关闭某个字段的显示。 - 按
s将当前字段设为排序依据。 - 按
q退出设置回到主界面。