top命令的详解

top 是 Linux / 类 Unix 系统中最常用的实时系统监控工具,能够动态显示进程的资源使用情况(如 CPU、内存、IO 等),帮助用户快速定位系统负载过高、资源耗尽等问题。

一、基本用法

直接在终端输入 top 即可启动,默认每 3 秒刷新一次界面(可通过交互命令修改)。退出按 q

二、界面详解

top 界面分为两部分:系统信息摘要(顶部)进程列表(底部)

1. 系统信息摘要(顶部 5-6 行)

以典型输出为例:

plaintext

复制代码
top - 14:35:22 up 10 days,  2:18,  3 users,  load average: 0.65, 0.80, 0.72
Tasks: 289 total,   1 running, 288 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.0 us,  2.0 sy,  0.0 ni, 92.5 id,  0.5 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15987.5 total,   1234.2 free,   8765.3 used,   5988.0 buff/cache
MiB Swap:   2048.0 total,   1800.0 free,    248.0 used.   6543.1 avail Mem
第 1 行:系统整体状态
  • 14:35:22:当前系统时间
  • up 10 days, 2:18:系统运行时间(已开机 10 天 2 小时 18 分)
  • 3 users:当前登录用户数(通过 who 命令可查看具体用户)
  • load average: 0.65, 0.80, 0.72系统负载平均值 (关键指标)
    • 含义:单位时间内等待 CPU 处理的进程数(含正在运行的进程)。
    • 三个数值分别对应 1 分钟、5 分钟、15 分钟 的平均负载。
    • 参考:若 CPU 核心数为 N,负载 <N 表示系统空闲;负载> N 表示进程需要排队等待 CPU。
第 2 行:进程总数统计
  • Tasks: 289 total:总进程数
  • 1 running:正在运行的进程数(占用 CPU)
  • 288 sleeping:休眠进程数(等待事件,如 IO 完成)
  • 0 stopped:暂停的进程(如被 kill -STOP 暂停)
  • 0 zombie:僵尸进程(已终止但父进程未回收资源)
第 3 行:CPU 使用率(关键指标)

%Cpu(s): 5.0 us, 2.0 sy, 0.0 ni, 92.5 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st 为例:

  • us(user):用户态进程占用 CPU 的比例(如应用程序)。
  • sy(system):内核态进程占用 CPU 的比例(如系统调用)。
  • ni(nice):调整过优先级(nice 值非 0)的用户态进程占用 CPU 的比例。
  • id(idle):CPU 空闲比例(若 id 低且 us/sy 高,可能 CPU 不足)。
  • wa(iowait):CPU 等待 IO 操作(如读写磁盘 / 网络)的时间比例(wa 高可能是 IO 瓶颈)。
  • hi(hardware irq):硬件中断占用 CPU 的比例(如键盘、网卡中断)。
  • si(software irq):软件中断占用 CPU 的比例(如内核调度)。
  • st(steal):虚拟化环境中,CPU 被宿主机 "偷走" 的时间比例(仅虚拟机可见)。
第 4-5 行:内存 / 交换分区(Swap)使用

以内存为例(MiB Mem):

  • total:总内存容量(物理内存)。
  • used:已使用的内存(含进程占用、内核缓存等)。
  • free:完全空闲的内存(未被任何进程 / 缓存使用)。
  • buff/cache:缓存(cache,如文件缓存)和缓冲区(buffer,如 IO 临时数据)占用的内存(可被内核回收复用)。
  • avail Mem(部分版本显示):可用内存(≈ free + 可回收的 buff/cache),更能反映系统实际可用内存。
2. 进程列表(底部)

默认显示系统中所有进程的资源使用情况,按 CPU 使用率降序排列。列含义如下:

列名 含义说明
PID 进程唯一 ID(可通过 kill PID 终止进程)
USER 进程所有者(用户名或 UID)
PR 进程优先级(数值越小优先级越高):- 实时优先级(-1 至 -99)- 普通优先级(0 至 139,默认 120)
NI Nice 值(优先级调整值):- 范围 -20(最高)至 19(最低)- PR = NI + 120(普通进程)
VIRT 进程使用的虚拟内存总量(含未使用的 swap、共享库等,不代表实际占用)
RES 进程使用的物理内存(不包含 swap,单位 KiB/MiB,是实际占用的物理内存)
SHR 进程使用的共享内存(含与其他进程共享的库、文件等,RES 包含 SHR)
S 进程状态:- R(Running,运行中)- S(Sleeping,休眠,可被唤醒)- D(Disk Sleep,不可中断休眠,通常等待 IO)- Z(Zombie,僵尸进程)- T(Stopped,暂停)
%CPU 进程占用 CPU 的比例(自上次刷新以来的平均值)
%MEM 进程占用物理内存的比例(RES / 总内存)
TIME+ 进程累计占用的 CPU 时间(精确到 0.01 秒)
COMMAND 进程启动命令(默认显示缩写,按 c 可切换完整命令)

三、常用交互命令(启动 top 后输入)

top 支持动态操作,常用命令如下:

命令 功能说明
P CPU 使用率 降序排序(默认)
M 内存使用率(% MEM) 降序排序
T 累计 CPU 时间(TIME+) 降序排序
N PID 升序排序
k 终止进程(输入后提示输入 PID,再输入信号量,默认 15(正常终止),9(强制终止))
r 调整进程优先级(输入 PID 后,修改 Nice 值,范围 -20 至 19)
c 切换显示 完整命令 / 缩写命令
H 切换显示 进程 / 线程(显示线程时,PID 列会显示线程 ID)
1 切换显示 单个 CPU 总使用率 / 每个核心的使用率(多核系统有效)
s 修改刷新间隔(输入秒数,默认 3 秒)
q 退出 top
f 自定义显示列(按上下键选择列,按空格键切换是否显示,按回车确认)
u 过滤显示指定用户的进程(输入用户名或 UID)
p 过滤显示指定 PID 的进程(输入 PID,多个用逗号分隔)

四、常用命令行参数(启动时指定)

参数 功能说明
top -d N 设置刷新间隔为 N 秒(如 top -d 5 每 5 秒刷新一次)
top -p PID 仅监控指定 PID 的进程(如 top -p 1234 监控 PID 为 1234 的进程)
top -u user 仅监控指定用户的进程(如 top -u root 只看 root 启动的进程)
top -H 启动时直接显示线程(相当于启动后按 H
top -b 批处理模式(非交互式,可输出到文件,如 top -b -n 1 > top.log 保存一次快照)

五、注意事项

  1. 负载与 CPU 使用率的区别:负载反映 "等待 CPU 的进程数",CPU 使用率反映 "CPU 忙碌程度"。例如:IO 密集型任务(如大量读写磁盘)可能导致负载高,但 CPU 使用率低(因进程在等 IO)。

  2. 僵尸进程(Z) :若僵尸进程过多,可能是父进程未正确回收子进程资源,需检查父进程(通过 pstree -p PID 查看父进程)。

  3. 缓存(buff/cache)buff/cache 是内核为提高性能的缓存,并非 "已占用且不可用",系统内存不足时会自动释放,因此 "free 内存少" 不一定是内存不足(需看 avail Mem)。

通过 top 可快速定位系统瓶颈(CPU / 内存 / IO 问题),结合 iostat(IO 监控)、free(内存详情)等工具可更全面分析系统状态。

相关推荐
东城绝神5 小时前
《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署redis 7.4.5容器版分片集群》
linux·运维·redis·架构·分片集群
馨谙5 小时前
网络故障排查三板斧:路由追踪、端口检查,快速定位网络问题
linux·网络
herinspace5 小时前
如何设置电脑分辨率和显示缩放
服务器·数据库·智能手机·电脑
报错小能手5 小时前
linux学习笔记(49)Redis详解(1)
linux·笔记·学习
QT 小鲜肉5 小时前
【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
linux·windows·笔记·学习·adb
keer_zu6 小时前
一个Modbus-TCP传感器数据传输方案
网络·网络协议·tcp/ip
panplan.top6 小时前
Tornado + Motor 微服务架构(Docker + 测试 + Kubernetes)
linux·python·docker·微服务·k8s·tornado
深度学习实战训练营6 小时前
MemNet:一种用于图像恢复的持久性存储网络
网络·人工智能
TiAmo8086 小时前
ip生产区
服务器·网络·tcp/ip