Linux查看CPU内存负载top命令详解
top 是 Linux 上最常用的实时资源监控工具,一屏看到 CPU、内存、负载和进程排行。很多人打开 top 只看一眼数字就关掉,却读不懂各字段含义,导致判断不出到底是 CPU 忙、内存不够还是 I/O 卡顿。本文把 top 顶部统计区和进程表逐列讲清,并给出常用交互按键。
一、启动与退出
top
直接进入实时界面,按 q 退出;想刷新间隔设为 2 秒:
top -d 2
只看某个进程:
top -p 1234
二、顶部统计区逐行解读
第一行(负载行):
up 120 days, load average: 0.25, 0.18, 0.10
- up 是开机时长;load average 三个数分别是 1 分钟、5 分钟、15 分钟平均负载。负载值超过 CPU 核心数就说明排队了。
第二、三行是 CPU 占用拆分:
Cpu(s): 1.2%us, 0.5%sy, 0.0%ni, 98.1%id, 0.2%wa
- us 用户进程占用,sy 内核占用,id 空闲,wa 等待 I/O。wa 高说明瓶颈在磁盘,不在 CPU。
内存两行:
KiB Mem : total free used buff/cache
KiB Swap: total free used avail
注意 buff/cache 是缓存,不是被浪费;真正可用看 avail(可用内存),used 高不必紧张。
三、进程表关键列
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- PID 进程号;%CPU、%MEM 分别是 CPU 和内存占用。
- RES 是进程真正占用的物理内存,看内存问题主要看它。
- S 是状态:R 运行、S 睡眠、Z 僵尸进程。
- TIME+ 是累计占用 CPU 时间。
按 %CPU 排序(默认),大写 M 按内存排序,大写 P 切回 CPU 排序。
四、常用交互按键
P按 CPU 占用降序;M按内存降序;T按累计时间排序。k输入 PID 直接杀进程;r调整进程优先级(renice)。1展开显示每个核心的 CPU;f自定义显示列。q退出。
五、判断瓶颈的经验
- %us 长期接近 100%:计算密集,先找高 CPU 进程。
- %wa 高:磁盘 I/O 堵,换 iostat、iotop 细看。
- avail 很低、swap used 上涨:内存不足,会触发换页卡顿。
- 负载高但 CPU 不高:多为 I/O 等待或大量进程排队。
- 想看历史趋势别只靠 top,配合 sar、vmstat 采样。
常见坑
- 把 buff/cache 当成“内存被占满”,其实缓存可回收,看 avail 才准。
- 负载数值不和核心数比,单核机器负载到 1 就已经饱和。
- top 里 %CPU 可能超过 100%,那是多核累加,属正常。
- 一次性快照不能说明问题,要看持续趋势。
- 杀进程用 k 前先确认 PID,别误杀关键服务。
总结
top 先读负载和 CPU 的 us/wa 区分计算还是 I/O 瓶颈,内存看 RES 和 avail 而非 used,进程表按 P/M 排序定位高占用 PID,再用 k 处理。日常排查配合 iostat、vmstat、sar 更可靠。
遇到问题加QQ23979811 协助处理