Linux服务器卡顿排查(完整指南)

在 Linux 服务器运维中,“卡顿”是最常见但也最容易误判的问题之一。它可能来自 CPU、内存、磁盘、网络,也可能来自进程异常或系统配置问题。

本文提供一套从现象 → 定位 → 解决的完整排查流程,适用于生产环境服务器(VPS / 云主机 / 物理机)。


一、先判断:到底“卡”在哪里?

服务器卡顿一般分为四类:

  • CPU 过高(计算压力)
  • 内存不足(频繁 swap)
  • 磁盘 IO 瓶颈(最常见)
  • 网络异常(延迟/丢包)

二、快速体检(1分钟定位问题)

1️⃣ 查看系统整体负载

uptime

输出示例:

load average: 5.32, 4.88, 3.90

👉 判断标准:

  • 小于 CPU 核心数:正常
  • 大于 CPU 核心数:可能卡顿

2️⃣ 查看 CPU 占用

top

或:

htop

重点看:

  • %CPU
  • load average
  • top 进程

3️⃣ 查看内存情况

free -h

重点:

  • available 是否过低
  • swap 是否在使用

4️⃣ 查看磁盘 IO

iostat -x 1

如果没有:

sudo apt install sysstat -y

重点:

  • %util 接近 100% → 磁盘瓶颈

三、CPU导致卡顿(最常见)

1️⃣ 查找高CPU进程

top -o %CPU

或:

ps aux --sort=-%cpu | head

2️⃣ 常见原因

  • 死循环程序
  • Web服务请求暴增
  • Java / Node 内存泄漏
  • 容器异常(Docker)

3️⃣ 解决方法

杀掉异常进程

kill -9 PID

限制CPU(Docker)

--cpus="1.0"

四、内存导致卡顿(swap杀手)

1️⃣ 查看内存

free -h

2️⃣ 判断是否 swap

swapon --show

3️⃣ swap导致卡顿特征

  • CPU不高但系统卡
  • load average 很高
  • IO等待时间长

4️⃣ 解决方法

清理缓存

sync; echo 3 > /proc/sys/vm/drop_caches

增加 swap

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

五、磁盘 IO 卡顿(最严重)

1️⃣ 查看 IO 状态

iotop

2️⃣ 查看磁盘使用率

df -h

3️⃣ IO瓶颈特征

  • load average 高
  • CPU idle 高但系统卡
  • iowait 很高

4️⃣ 常见原因

  • 日志疯狂写入
  • 数据库查询慢
  • Docker日志爆炸
  • 磁盘快满

5️⃣ 解决方法

清理日志

sudo journalctl --vacuum-time=7d

限制 Docker 日志

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

六、网络导致卡顿

1️⃣ 测试延迟

ping 8.8.8.8

2️⃣ 查看连接数

ss -ant | wc -l

3️⃣ 常见原因

  • DDOS攻击
  • DNS异常(DNS)
  • 带宽打满

4️⃣ 解决方法

sudo ufw limit ssh

七、系统级问题


1️⃣ 文件句柄耗尽

ulimit -n

2️⃣ 查看内核日志

dmesg | tail

3️⃣ zombie进程

ps aux | grep Z

八、Docker导致卡顿(重点)

Docker 常见问题:


1️⃣ 容器CPU打满

docker stats

2️⃣ 容器日志爆炸

/var/lib/docker/containers/

3️⃣ 解决方案

限制资源:

deploy:
  resources:
    limits:
      memory: 512M
      cpus: "1.0"

九、快速排查流程(建议收藏)

遇到卡顿按这个顺序:


Step 1:看负载

uptime

Step 2:看CPU

top

Step 3:看内存

free -h

Step 4:看磁盘

iostat -x 1

Step 5:看网络

ss -ant

十、生产优化建议


✔ 1. 定期清理日志


✔ 2. 限制 Docker 资源


✔ 3. 使用监控工具

推荐:

  • Prometheus
  • Grafana

✔ 4. 开启 swap(低内存机器)


十一、总结

在 Linux 上,服务器卡顿本质是资源瓶颈:

  • CPU过载
  • 内存不足
  • IO瓶颈
  • 网络拥塞

而 Docker 和 DNS 也常常是隐藏原因。


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部