温馨提示×

ubuntu swap导致卡顿吗

小樊
54
2026-09-13 06:05:17
栏目: 智能运维

简短结论:Ubuntu 的 swap 本身不会“导致”卡顿,但在内存不足、频繁使用 swap(swap thrashing)时,会明显感觉系统变慢、卡顿。

下面详细说一下。


一、swap 是什么,为什么会卡

swap 是把内存中不常用的数据写到磁盘(或 SSD)上,腾出物理内存给更需要的程序用。

  • 内存足够时:swap 基本不会被用,系统正常,不会卡。
  • 内存不足时:系统开始把数据换进换出磁盘。
  • 磁盘比内存慢很多(尤其是 HDD):
    • 读 swap → 慢
    • 写 swap → 慢
    • 频繁交换 → 卡顿、鼠标不动、程序无响应

这就是常说的 swap 导致卡顿,本质是「内存不够 + 磁盘 IO 慢」。


二、哪些情况最容易卡

  1. 物理内存太小
    • 比如 2G / 4G 内存,开浏览器 + IDE + Docker
  2. swap 在机械硬盘上
    • HDD swap 比 SSD 慢 10–100 倍
  3. swappiness 设置过高
    • Ubuntu 默认 swappiness=60
    • 内存还没怎么用就开始 swap
  4. 内存泄漏 / 某个程序吃光内存
    • 如 Chrome、Java、机器学习程序

三、怎么判断是不是 swap 导致的卡

free -h

看:

  • Mem 用了多少
  • Swap 是否大量使用

再看:

top
# 或
htop

如果:

  • 内存快满
  • swap 在涨
  • CPU 等待(wa)很高

那就是 swap 在拖慢系统。


四、优化 / 解决办法

1️⃣ 加内存(最根本)

  • 8G 起步,开发建议 16G+

2️⃣ 降低 swappiness(推荐)

cat /proc/sys/vm/swappiness

临时改:

sudo sysctl vm.swappiness=10

永久改:

sudo nano /etc/sysctl.conf

加:

vm.swappiness=10

服务器可设更低(如 1–5),桌面一般 10–20


3️⃣ swap 放到 SSD(比 HDD 好太多)

如果是 HDD,强烈建议:

  • 用 SSD
  • 或缩小 swap 大小

4️⃣ 控制 swap 大小

  • 内存 ≥ 8G:swap 2–4G 足够
  • 内存 ≤ 4G:swap = 内存大小或 2 倍

5️⃣ 关掉 swap(不推荐新手)

sudo swapoff -a

⚠️ 风险:

  • 内存满直接 OOM,程序被杀

五、一句话总结

swap 不会主动让 Ubuntu 卡,真正卡的是“内存不够 + 频繁 swap + 磁盘慢”。

如果你愿意,可以告诉我:

  • 内存多大
  • 用的 HDD 还是 SSD
  • 主要做什么(开发 / 办公 / 游戏 / 服务器)

我可以给你一套最适合你机器的 swap 配置。

0 踩