做什么
实时显示进程列表 + 系统资源使用。每 3 秒刷一次。
top
顶部摘要
top - 10:23:45 up 23 days, ... load average: 0.45, 0.52, 0.61
Tasks: 234 total, 1 running, 233 sleeping
%Cpu(s): 5.2 us, 2.1 sy, 0.0 ni, 92.3 id, 0.4 wa, 0.0 hi, 0.0 si
MiB Mem : 7900.0 total, 5000.0 free, 1200.0 used, 1700.0 buff/cache
MiB Swap: 2000.0 total, 2000.0 free, 0.0 used
CPU 行字段:
us用户态sy内核态id空闲waIO 等待 ★ 大于 20% 说明磁盘瓶颈si软中断
进程列表列
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 1.2G 50M 10M S 0.5 0.6 1:23 nginx
交互快捷键(运行时按)
| 键 | 作用 |
|---|---|
q |
退出 |
h |
帮助 |
M |
按内存排序(大写) |
P |
按 CPU 排序 |
T |
按累计 CPU 时间 |
c |
切换显示完整命令行 |
1 |
显示每个 CPU 核 |
k |
杀进程(输 PID) |
r |
renice 进程 |
u |
只显示某用户 |
f |
选要显示的列 |
W |
保存当前布局 |
space |
立刻刷新 |
d 或 s |
改刷新间隔 |
常用启动参数
top -u wadely # 只看某用户
top -p 1234,5678 # 只看特定 PID
top -d 1 # 1 秒刷新
top -b -n 1 # 批处理模式(输出一次后退出,脚本用)
脚本里用
# 拿当前各种指标
top -b -n 1 | head -20
# 取 5 秒内的 CPU 占用
top -b -n 2 -d 5 | grep "myapp" | tail -1 | awk '{print $9}'
现代替代
- htop:彩色 + 鼠标 + 树状(下一篇)
- btop:图表 + 美观(
apt install btop) - glances:综合面板
坑
- 第一次启动 top 显示的 CPU% 是"自启动以来累计"——看后面几次刷新才准
- 大量进程时 top 自己也吃 CPU——用
-d 5减刷新频率 - 大写小写键功能不同——
P排 CPU、p是别的