菜单

Administrator
发布于 2026-10-11 / 2 阅读
0
0

Linux 进阶 L20:性能排查三板斧——top、vmstat、iostat

Linux 进阶 L20:性能排查三板斧——top、vmstat、iostat

服务器变慢了,别慌。三板斧下去,瓶颈在哪一目了然。

第一板斧:top——谁在吃资源

top
top - 00:12:34 up 13 days,  3:38,  1 user,  load average: 0.00, 0.00, 0.00
%Cpu(s):  0.3 us,  0.2 sy,  0.0 ni, 99.5 id
MiB Mem :    939.4 total,     86.2 free,    771.3 used,    168.1 avail
  PID USER  %CPU %MEM COMMAND
  769443 root   0.5  40.3 java

看三处:load average(1/5/15 分钟平均负载,单核超 1.0 算忙)、%Cpu 行的 id(空闲,长期低于 20% 就是 CPU 瓶颈)、%MEM 列(谁吃内存最多)。

top 里按 P 按 CPU 排序,按 M 按内存排序,按 q 退出。

第二板斧:vmstat——系统全局体检

vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0  88332  15234 204567    0    0     2     5   89  156  0  0 99  0

关键列:r(等待 CPU 的进程数,长期大于核数则 CPU 不够)、si/so(swap 换入换出,非 0 说明内存不够)、wa(CPU 等 IO,长期偏高则磁盘是瓶颈)。

第三板斧:iostat——磁盘是不是拖后腿

iostat -x 1 3
Device   %util  await  avgqu-sz
nvme0n1   2.10   1.20    0.02

%util(磁盘忙碌度,长期近 100% 则扛不住)、await(平均等待毫秒)、avgqu-sz(排队长度)。

实战:博客变慢了怎么查

top          # 1. 先看谁吃 CPU/内存
vmstat 1 5   # 2. si/so 是否为 0,wa 高不高
iostat -x 1  # 3. %util 确认磁盘
free -h      # 4. 内存还剩多少

排查口诀

先 top 看进程,再 vmstat 看全局,si so 不为零加内存别犹豫,wa 高看 iostat,util 满了换 SSD。

小结

命令

看啥

瓶颈信号

top

进程资源

%CPU/%MEM 某进程畸高

vmstat

内存/swap/IO

si/so 非零,wa 高

iostat -x

磁盘

%util 近 100%

free -h

内存

available 见底

三板斧抡熟了,服务器慢的第一反应不再是"重启试试",而是"数据说话"。


评论