
top是Linux系统中最经典的实时系统监控工具,它提供了一个动态更新的视图,显示正在运行的进程、CPU负载、内存使用情况等关键系统指标。作为系统管理员的第一道防线,top能够快速定位资源占用过高的进程,监控系统健康状态,识别性能瓶颈。
top的界面分为上下两部分:上方的摘要区域显示系统整体状态(负载、CPU、内存),下方的进程列表区域显示每个进程的详细信息。top支持丰富的交互式命令,可以实时排序、过滤、调整进程优先级,甚至直接终止进程。掌握top是Linux性能调优和故障排查的必备技能。
1. 启动选项
| 命令 | 说明 |
|---|
top | |
top -d 5 | |
top -n 3 | |
top -u zhangsan | |
top -p 1234,5678 | |
top -b | |
top -b -n 1 | |
top -H | |
top -o %CPU | |
2. 交互式导航
top运行时可用按键命令:
3. 排序方式
4. 显示切换
5. 过滤与搜索
| 按键 | 说明 |
|---|
u | |
U | |
o | 添加过滤器(如 COMMAND=nginx 或 %CPU>5.0) |
Ctrl+O | |
= | |
L | |
& | |
' | |
6. 摘要区域字段说明
| 字段 | 说明 |
|---|
load average | |
us | |
sy | |
ni | |
id | |
wa | |
hi | |
si | |
st | |
MiB Mem | |
MiB Swap | |
7. 进程列表字段说明
| 字段 | 说明 |
|---|
PID | |
USER | |
PR | |
NI | |
VIRT | |
RES | |
SHR | |
S | 进程状态(R=运行,S=睡眠,Z=僵尸,D=不可中断) |
%CPU | |
%MEM | |
TIME+ | |
COMMAND | |
8. 批处理模式
用于脚本和日志记录:
| 命令 | 说明 |
|---|
top -b -n 1 | |
top -b -n 5 -d 2 > top.log | |
top -b -n 1 -o %MEM | |
top -b -n 1 -u www-data | |
top -b -n 1 -p 1234 | |
top -b -n 1 | grep "Cpu(s)" | |
9. 实用组合模式
| 命令/操作 | 说明 |
|---|
top -u zhangsan -o %MEM | |
top -p $(pgrep -d',' nginx) | |
top -b -n 1 | awk '/load average/ {print $12}' | |
while true; do top -b -n 1 | head -20 >> top.log; sleep 5; done | |
top -H -p 1234 | |
10. 常用选项速查
11. 故障排查
| 问题 | 解决方法 |
|---|
| CPU显示总和不为100% | |
| 找不到特定进程 | |
| 进程列表滚动太快 | |
| top命令不可用 | 安装procps包:apt install procps或yum install procps |
| 批处理输出格式混乱 | 使用-w指定输出宽度:top -b -n 1 -w 512 |
| 想终止进程但无效 | 尝试kill -9信号:按k,输入PID,信号输入9 |
| 内存显示与实际不符 | |
温馨提示: top是动态监控工具,适合短期观察。对于长期性能分析,建议结合htop(更友好的交互界面)、atop(更详细的系统记录)或nmon(性能数据收集)使用。在排查性能问题时,建议先按P看CPU占用,再按M看内存占用,快速定位资源消耗最大的进程。使用u过滤特定用户,可以隔离应用进程。
关注公众号(haopython),请回复: LLTTOP