Linux系统卡顿严重_性能瓶颈定位方法

5次阅读

服务器卡顿是资源供需失衡的明确信号,需按cpu(看uptime和top)、内存(用free和vmstat)、磁盘io(用iostat和iotop)、网络与日志(用ss和dmesg)四步快速定位瓶颈。

Linux系统卡顿严重_性能瓶颈定位方法

服务器卡顿不是随机发生的,而是资源供需失衡的明确信号。关键不是“哪个命令最炫”,而是用最少步骤快速锁定是CPU、内存、磁盘IO还是网络出了问题。

CPU瓶颈:看负载和状态分布

先执行 uptime,看三个平均负载值(1/5/15分钟)。如果最后一个值持续高于 CPU 核心数(可用 nproc 查),说明有进程在排队等 CPU。再运行 top,重点关注顶部两行:

  • %Cpu(s) 行us(用户态)高 → 应用逻辑或计算密集型任务占满;
  • sy(内核态)高 → 可能是频繁系统调用、上下文切换或中断处理过多;
  • wa(iowait)高 → 实际不是 CPU 问题,而是进程在等磁盘响应,要转去看 IO;
  • st(steal)高 → 云主机被宿主抢占,需联系厂商或扩容。

内存瓶颈:警惕 Swap 和可用内存

运行 free -h,重点看三列:

  • available 值远低于总内存 → 真实可用内存不足;
  • swap used 明显增长,且 si/so(swap in/out)在 vmstat 1 5 中持续非零 → 内存严重不足,进程频繁换页,响应必然变慢;
  • 即使 free 值不低,但 buff/cache 占比异常高,且应用响应迟缓 → 可能是内核缓存挤占了可分配内存,需结合 slabtop 看内核对象占用。

磁盘IO瓶颈:从总量到进程逐层下钻

先用 iostat -xz 1 看整体设备指标:

  • %util > 70%await > 10ms(机械盘)或 > 1ms(SSD)→ 设备已饱和;
  • r/s + w/s 远超设备理论 IOPS → 吞吐过载;
  • avgqu-sz 持续大于 1 → 队列积,请求在排队。

确认是 IO 问题后,立刻执行 sudo iotop -o,找出实时写入或读取最猛的进程。再用 ps -p PID -o pid,ppid,comm,args 定位具体服务和参数。

网络与日志:别漏掉连接和错误线索

运行 ss -snetstat -s | grep -i “drop|retransmit|failed”,看是否有大量连接丢包、重传或失败。同时快速扫一眼 dmesg -T | tail -20,检查最近是否有硬件报错、OOM killer 杀进程、或磁盘 I/O timeout 类警告。这些信息往往比性能数字更直接指向根因。

text=ZqhQzanResources