在Linux系统中,top命令的显示参数详解

top命令

top 是 Linux/Unix 系统中最常用的 实时系统监控工具 ,能动态显示进程的 CPU 占用、内存使用、运行状态等核心信息,帮助排查系统负载高、响应慢等问题。其界面数据可分为 系统整体状态区进程列表区 两部分,下面逐区域拆解每一项数据的含义(以 CentOS/Ubuntu 通用界面为例):

第一行:系统时间、运行时间、登录用户数、系统负载

字段 含义解释
10:29:23 当前系统时间
up 6:50 系统已运行时间(6 小时 50 分钟,未重启)
1 users 当前登录系统的用户数(包括本地终端、远程 SSH 登录等,可通过 who 命令查看具体用户)
load average: 0.00, 0.00, 0.00 系统负载:分别代表过去 1 分钟、5 分钟、15 分钟的平均负载(核心指标)。⚠️ 关键判断:若负载值 ≈ CPU 核心数(如 4 核 CPU 负载≈4),表示 CPU 刚好满负荷;若长期 > CPU 核心数(如 4 核负载 > 8),则 CPU 严重过载。

第二行:进程统计(总进程数及状态分布)

字段 含义解释
201 total 系统当前运行的 总进程数(包括所有状态的进程)
1 running 正在占用 CPU 运行的进程数(通常很少,若长期 > CPU 核心数,说明 CPU 竞争激烈)
200 sleeping 睡眠进程数(进程等待资源,如等待磁盘 IO、网络响应,不占用 CPU)
0 stopped 被暂停的进程数(如通过 kill -STOP 暂停的进程,需 kill -CONT 恢复)
0 zombie 僵尸进程数(进程已结束,但父进程未回收其资源,长期 > 0 需排查,避免内存泄漏)

第三行:CPU 资源使用情况

字段 含义解释
us 用户态 CPU 占比:用户进程(如 Java、Python 程序)占用的 CPU 资源(若过高,说明应用消耗 CPU 多)
sy 内核态 CPU 占比:系统内核(如进程调度、内存管理、IO 驱动)占用的 CPU 资源(若过高,可能是内核线程或驱动问题)
ni 优先级调整 CPU 占比 :通过 nice 命令调整过优先级的进程占用的 CPU(默认 0,很少用到)
id 空闲 CPU 占比(核心指标):数值越高,CPU 越空闲;若长期 < 10%,说明 CPU 资源紧张
wa IO 等待 CPU 占比:CPU 等待磁盘 / 网络 IO 完成的时间占比(若 > 5%,说明磁盘 / 网络 IO 瓶颈,CPU "没事干只能等")
hi 硬中断 CPU 占比:硬件中断(如键盘、网卡、磁盘控制器触发的中断)占用的 CPU(通常很低)
si 软中断 CPU 占比:软件中断(如内核信号、网络数据包处理)占用的 CPU(高并发网络场景可能升高)
st 虚拟化窃取 CPU 占比:虚拟机被宿主机 "偷走" 的 CPU 资源(仅虚拟化环境有,如 VM、Docker,若过高需向宿主机申请更多资源)

第四行:物理内存(RAM)使用情况

字段 含义解释
total 物理内存总大小(示例≈8GiB,8169856 KiB ÷ 1024 ÷ 1024 ≈8
free 完全空闲的内存(未被任何进程或系统使用)
used 已使用的内存(包括进程占用、内核占用,但需结合 buff/cache 看实际压力)
buff/cache 缓存内存 :- buffer:用于缓存磁盘 IO 数据(如写文件时先存到 buffer,再批量写入磁盘);- cache:用于缓存读取过的文件内容(如反复读同一个日志文件,直接从 cache 取,避免重复读磁盘);关键:buff/cache 可被系统回收给新进程,所以 "实际空闲内存"≈free + buff/cache,若这个值低,才说明内存紧张。

第五行:交换内存(Swap)使用情况

字段 含义解释
total Swap 分区总大小(示例≈4GiB)
free 空闲的 Swap 空间
used 已使用的 Swap 空间(若持续增长,说明物理内存不足,需警惕:Swap 基于硬盘,速度远慢于内存,会导致系统卡顿)
avail Mem 可立即分配给新进程的内存大小(≈free Mem + buff/cache 中可回收部分,更准确的 "可用内存" 指标)

第六行:进程列表区

表头 含义解释
PID 进程唯一 ID(核心标识,如通过 kill PID 终止进程)
USER 进程的所属用户(如 root 是系统用户,app 是应用用户,可判断是否有异常用户进程)
PR 进程的 静态优先级(由内核分配,用户无法修改,值越小优先级越高,通常为 20)
NI 进程的 ** nice 值 **(动态优先级,用户可通过 nice -n 数值 进程名 调整,范围 -20~19,值越小优先级越高)
VIRT 进程的 虚拟内存大小(包括进程代码、数据、共享库、Swap 中的数据,不代表实际占用内存,参考意义不大)
RES 进程的 物理内存占用大小(Resident Memory,核心指标!代表进程实际占用的物理内存,不包括 Swap 和共享库)
SHR 进程的 共享内存大小(Shared Memory,如多个进程共享的库文件、共享内存段,不计入单个进程的 "独占内存")
S 进程的 运行状态 (单个字母表示,核心判断依据):- R:Running(正在运行或等待 CPU);- S:Sleeping(睡眠,等待资源,如 IO);- D:Uninterruptible Sleep(不可中断睡眠,通常是等待磁盘 IO,不能用 kill 终止);- Z:Zombie(僵尸进程,需找父进程回收);- T:Stopped(被暂停,如 kill -STOP
%CPU 进程的 CPU 占用率 (实时值,按 P 键可按此列排序,快速定位 "CPU 杀手")
%MEM 进程的 物理内存占用率 (按 M 键可按此列排序,快速定位 "内存大户")
TIME+ 进程从启动到现在的 总 CPU 占用时间 (精确到 0.01 秒,如 12:34.56 代表 12 分钟 34.56 秒,可判断进程是否长期占用 CPU)
COMMAND 进程的 启动命令 (如 java -jar app.jarnginx,可按 c 键显示完整命令,排查异常进程)

常用操作:

  • P:按 CPU 占用率 降序排序(默认排序,快速找高 CPU 进程);
  • M:按 内存占用率 降序排序(找内存泄漏进程);
  • T:按 CPU 总占用时间 排序(找长期消耗 CPU 的进程);
  • k:输入 PID 并回车,可终止指定进程(需谨慎,避免误杀系统进程);
  • 1:显示 每个 CPU 核心的单独占用率 (如 4 核 CPU 会显示 %Cpu0~%Cpu3,判断是否某核心过载);
  • q:退出 top 命令。
相关推荐
APIshop3 小时前
PHP:一种强大的服务器端脚本语言
服务器·php
qq_401700413 小时前
I.MX6U 启动方式详解
linux
code-vibe5 小时前
物理机 kali 改造笔记 (一)
linux·运维·服务器
小坏讲微服务5 小时前
五分钟使用 Docker-compose搭建 Redis 8.0 中间件
运维·redis·docker·中间件·容器·kubernetes·k8s
老黄编程5 小时前
03-gpg(证书管理 )详细范例
linux·运维·ubuntu·数字证书
Aimyon_365 小时前
MinerU Docker自定义版本部署
运维·docker·容器
莱茶荼菜6 小时前
Ubuntu 20.04 系统库管理详细教程
linux·运维·ubuntu
岁月玲珑6 小时前
ComfyUI如何配置启动跳转地址127.0.0.1但是监听地址是0.0.0.0,::
java·服务器·前端
迅为电子7 小时前
嵌入式Linux新手入门:北京迅为3568开发板驱动开发第二章helloworld 驱动实验
linux·运维·驱动开发