当前位置:首页>Linux>top 命令超详细教程(Linux 任务管理器)

top 命令超详细教程(Linux 任务管理器)

  • 2026-10-11 07:31:47
top 命令超详细教程(Linux 任务管理器)

 top  是 Linux 内置的实时系统监控工具,相当于 Windows 任务管理器,能动态看整机负载、CPU/内存、进程/线程资源占用,默认 3秒 刷新一次。

 

一、启动与常用参数(命令行)

基本启动

bash
top # 默认:3秒刷新,显示所有进程
 

常用启动参数(必记)

-  -d N :设置刷新间隔(秒), top -d 1  每秒刷新
-  -p PID :只监控指定进程, top -p 1234 ;多进程用逗号分隔
-  -u 用户名 :只看某用户进程, top -u root 
-  -H :显示线程(默认只看进程)
-  -b :批处理模式(输出到文件/脚本用)
-  -n 次数 :刷新 N 次后退出, top -b -n 5 > top.log  存日志
-  -c :显示完整命令行(默认截断)

 

二、界面头部信息(系统全局状态)

打开  top  先看前5行,是系统核心指标:

plaintext
top - 22:30:00 up 10 days, 2:00, 1 user, load average: 0.1, 0.2, 0.3
Tasks: 120 total, 1 running, 119 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.0%us, 0.5%sy, 0.0%ni, 98.0%id, 0.3%wa, 0.0%hi, 0.2%si, 0.0%st
MiB Mem : 7856.2 total, 1234.5 free, 4567.8 used, 2053.9 buff/cache
MiB Swap: 8192.0 total, 8192.0 free, 0.0 used. 2890.1 avail Mem
 

1)第一行:系统时间、运行时长、负载

-  22:30:00 :当前时间
-  up 10 days :系统运行10天
-  1 user :登录用户数
-  load average: 0.1, 0.2, 0.3 :1/5/15分钟负载
- 单核:负载 ≤1 正常;>1 繁忙
- 多核:负载 ≤核心数 正常(4核≤4)

2)第二行:进程概况(Tasks)

-  total :总进程数
-  running :运行中(R状态)
-  sleeping :休眠(S状态,正常)
-  stopped :暂停(Ctrl+Z)
-  zombie :僵尸进程(Z,需处理)

3)第三行:CPU 占用(%)

-  us :用户进程(app)
-  sy :系统内核
-  ni :nice 调整过优先级的进程
-  id :空闲(重点),越高越闲
-  wa :IO等待(重点),高=磁盘慢/阻塞
-  hi :硬中断
-  si :软中断
-  st :虚拟机被抢占(云服务器)

4)第四/五行:内存(Mem)/交换分区(Swap)

-  total :总内存
-  used :已用
-  free :空闲
-  buff/cache :缓存(可回收)
-  avail Mem :可用内存(真实剩余)
-  Swap used :交换分区用了多少(高=内存不足)

 

三、进程列表字段详解(重点)

plaintext
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 123456 45678 12345 S 5.2 1.2 0:12.34 nginx
 

核心列(必看)

- PID:进程ID(杀进程、查进程都靠它)
- USER:进程所属用户
- PR/NI:优先级(PR越小越高;NI=-20最高,19最低)
- VIRT:虚拟内存(申请的地址空间,含swap,不准)
- RES:实际物理内存(重点),进程真实占用
- SHR:共享内存(和其他进程共用)
- S:进程状态
- R:运行中
- S:休眠(等待资源)
- Z:僵尸(父进程没回收)
- T:暂停(Ctrl+Z)
- %CPU:CPU使用率(多核可超100%)
- %MEM:物理内存占比
- TIME+:累计CPU时间
- COMMAND:进程名/命令行

 

四、交互式快捷键(运行中按,大小写敏感)

1)排序(最常用)

- P:按 %CPU 降序(默认)
- M:按 %MEM 降序(查内存大户)
- T:按 TIME+ 降序
- N:按 PID 排序

2)显示控制

- 1:展开显示每个CPU核心的占用
- c:切换完整命令行显示
- H:显示线程(替代 -H 参数)
- i:隐藏空闲进程
- f:自定义显示字段(增删列)
- o:调整列顺序

3)进程管理(高危谨慎)

- k:输入PID → 发信号(默认15=正常终止;9=强制杀)
- r:输入PID → 改nice值(-20~19,root可负)

4)刷新与退出

- d/s:改刷新间隔(秒)
- 空格:立即刷新
- q:退出
- h:帮助

 

五、高频实战场景(直接套用)

场景1:查CPU占用高的进程

bash
top
# 按 P 排序,看 %CPU 最高的PID
# 按 k → 输入PID → 15(正常杀)或9(强杀)
 

场景2:查内存泄漏/内存大户

bash
top
# 按 M 排序,看 RES/%MEM 最高的进程
 

场景3:定位磁盘IO阻塞(wa高)

bash
top
# 看 %wa 持续 >50% → 磁盘慢,用 iostat 进一步查
 

场景4:监控特定进程

bash
top -p $(pidof nginx) # 监控nginx所有进程
 

场景5:保存监控日志

bash
top -b -n 10 > top_$(date +%Y%m%d).log
 

 

六、常见状态与问题排查

1)僵尸进程(Z)

- 原因:子进程结束,父进程未回收
- 处理:杀父进程,或  kill -9 子PID 

2)负载高但CPU空闲(id高)

- 多为 IO阻塞(wa高),查磁盘/网络

3)%CPU超100%

- 多核正常(4核最高400%)

4)RES远大于实际内存

- 正常,因为共享内存(SHR)会被多进程共用

 

七、top vs jobs 区别

- top:系统级,看所有进程/线程(跨终端)
- jobs:Shell级,只看当前终端后台任务

最新文章

随机文章