温馨提示×

怎么设置ubuntu swap

小樊
46
2026-07-27 14:45:59
栏目: 智能运维

在 Ubuntu 上设置 swap(交换空间) 常见有三种方式:swap 文件(推荐)swap 分区zram。下面按「最常见、最实用」的顺序给你讲,基本照着做就行。


一、查看当前 swap 情况

先看看系统里有没有 swap:

swapon --show
free -h
  • 如果没有输出,说明当前没有 swap。

二、推荐方式:创建 swap 文件(最常用 ✅)

适合:云服务器、虚拟机、桌面 Ubuntu。

1️⃣ 创建 swap 文件(例如 4G)

sudo fallocate -l 4G /swapfile

如果 fallocate 不支持(某些文件系统),用:

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress

2️⃣ 设置权限(非常重要)

sudo chmod 600 /swapfile

3️⃣ 格式化为 swap

sudo mkswap /swapfile

4️⃣ 启用 swap

sudo swapon /swapfile

5️⃣ 验证

swapon --show
free -h

6️⃣ 开机自动挂载(必须)

编辑 fstab:

sudo nano /etc/fstab

添加这一行:

/swapfile none swap sw 0 0

保存退出(Ctrl+O → Enter → Ctrl+X)


三、swap 参数优化(可选但推荐)

查看当前 swappiness(默认 60)

cat /proc/sys/vm/swappiness

临时修改(重启失效)

sudo sysctl vm.swappiness=10

永久修改

sudo nano /etc/sysctl.conf

添加:

vm.swappiness=10

说明:

  • 10:内存快满才用 swap(适合桌面/服务器)
  • 60:默认,偏激进
  • 1:几乎不用 swap(数据库服务器常用)

四、删除 swap 文件(如果你后悔了)

sudo swapoff /swapfile
sudo rm /swapfile

并从 /etc/fstab 中删除对应行。


五、如果你用的是 swap 分区(传统方式)

查看分区

lsblk
sudo fdisk -l

启用分区(假设是 /dev/sda2)

sudo mkswap /dev/sda2
sudo swapon /dev/sda2

自动挂载

/dev/sda2 none swap sw 0 0

六、内存小?推荐 zram(现代方案 ⭐)

适合:内存 ≤ 8G 的笔记本 / 云服务器

sudo apt install zram-tools

Ubuntu 22.04+ 会自动配置,重启即可。

查看:

cat /proc/swaps

七、swap 大小建议(经验值)

内存 建议 swap
≤ 2G 2× 内存
2–8G 等于内存
≥ 8G 4–8G
休眠 ≥ 内存

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

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • 服务器 / 桌面 / 云主机
  • 内存多大

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

0