

Linux `top` 命令详解+问题分析+性能调优手册
一、系统概览表头解析
1. 第一行:系统状态总览
top - 14:30:45 up 30 days, 5:20, 3 users, load average: 0.02, 0.05, 0.10
字段 |
说明 |
重要提示 |
14:30:45 |
当前系统时间 |
精确到秒 |
up 30 days, 5:20 |
系统运行时间 |
格式:天+小时:分钟 |
3 users |
当前登录用户数 |
通过who 命令查看详情 |
load average |
系统负载均值 |
三个值分别代表: 1分钟 / 5分钟 / 15分钟的平均负载 |
2. 第二行:任务状态
Tasks: 256 total, 1 running, 255 sleeping, 0 stopped, 0 zombie
状态 |
说明 |
异常处理建议 |
total |
总进程数 |
正常范围:100-500(视系统规模) |
running |
正在运行的进程 |
持续高位需检查CPU瓶颈 |
sleeping |
等待资源的进程 |
多数进程正常处于此状态 |
stopped |
暂停的进程 |
常见于调试场景 |
zombie |
僵尸进程 |
>10个需排查:ps aux | grep defunct |
3. 第三行:CPU使用统计
%Cpu(s): 5.3 us, 1.2 sy, 0.0 ni, 93.2 id, 0.1 wa, 0.0 hi, 0.2 si, 0.0 st
指标 |
全称 |
说明 |
告警阈值 |
us |
user |
用户空间CPU占比 |
>70% 持续高位 |
sy |
system |
内核空间CPU占比 |
>20% 可能系统调用过多 |
ni |
nice |
调整优先级的进程CPU占比 |
- |
id |
idle |
空闲CPU百分比 |
长期<20%需扩容 |
wa |
iowait |
I/O等待时间占比 |
>30% 存储瓶颈 |
hi |
hardware interrupt |
硬件中断占比 |
突然升高检查硬件 |
si |
software interrupt |
软件中断占比 |
网络密集型应用较高 |
st |
steal time |
虚拟机被hypervisor抢占时间 |
>10% 云主机性能不足 |
4. 第四/五行:内存与交换空间
MiB Mem : 15842.3 total, 2345.6 free, 4567.8 used, 8928.9 buff/cache
MiB Swap: 2048.0 total, 1980.1 free, 67.9 used. 10928.1 avail Mem
内存部分:
字段 |
说明 |
计算公式 |
total |
总物理内存 |
- |
free |
完全未使用的内存 |
- |
used |
已使用的内存 |
total - free - buff/cache |
buff/cache |
缓存和缓冲区内存 |
可释放内存:包含文件缓存(cache )和块缓存(buffers ) |
交换空间:
字段 |
说明 |
告警阈值 |
total |
总交换空间大小 |
- |
free |
未使用的交换空间 |
- |
used |
已使用的交换空间 |
>30% 需优化内存使用 |
二、进程列表字段详解
1. 标准显示列
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
列名 |
全称 |
说明 |
单位/格式 |
PID |
Process ID |
进程唯一标识 |
数字 |
USER |
User Name |
进程所有者 |
系统用户名 |
PR |
Priority |
内核调度优先级 |
值越小优先级越高 |
NI |
Nice Value |
用户态优先级调整值 |
-20(最高)到19(最低) |
VIRT |
Virtual Memory |
进程使用的虚拟内存总量 |
KB/MB(含共享库+交换区) |
RES |
Resident Memory |
实际使用的物理内存 |
KB/MB(关键监控指标) |
SHR |
Shared Memory |
共享内存大小 |
KB/MB(多个进程共享的库) |
S |
Process Status |
进程状态 |
代码:R/S/D/Z/T |
%CPU |
CPU Usage |
CPU占用百分比 |
多核总和可超100% |
%MEM |
Memory Usage |
物理内存占比 |
(RES / total Mem) × 100% |
TIME+ |
CPU Time |
累计CPU时间 |
格式:分:秒.毫秒 |
COMMAND |
Command |
启动命令名称 |
截断显示时可按c 切换完整显示 |
2. 进程状态代码详解
代码 |
状态 |
说明 |
常见场景 |
R |
Running |
运行中 |
消耗CPU资源 |