温馨提示×

如何调整swap大小

小樊
32
2026-08-12 00:00:55
栏目: 编程语言

调整 swap(交换空间)大小在 Linux 系统中比较常见,一般有三种情况:新增 swap、扩大 swap、缩小或删除 swap。下面按常见场景给你一个完整、可操作的说明(以 Linux 为例,Ubuntu / CentOS / Debian 通用)。


一、查看当前 swap 情况

free -h
swapon --show

二、临时新增 swap(推荐做法:swap 文件)

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

sudo fallocate -l 4G /swapfile

如果 fallocate 不可用:

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

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

sudo chmod 600 /swapfile

3️⃣ 格式化为 swap

sudo mkswap /swapfile

4️⃣ 启用 swap

sudo swapon /swapfile

5️⃣ 写入 fstab(开机自动挂载)

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

✅ 适合:云服务器、虚拟机、临时扩容


三、调整已有 swap 大小(推荐方式)

✅ 方法一:删除旧 swap,新建更大的 swap(最干净)

1️⃣ 关闭 swap

sudo swapoff /swapfile

2️⃣ 删除旧 swap

sudo rm /swapfile

3️⃣ 重新创建更大的 swap(如 8G)

sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

✅ 方法二:保留原 swap,新增一个 swap 文件

sudo fallocate -l 4G /swapfile2
sudo chmod 600 /swapfile2
sudo mkswap /swapfile2
sudo swapon /swapfile2

查看:

swapon --show

⚠️ 不建议同时用多个 swap 分区,除非有特殊需求。


四、缩小 swap(不推荐,风险高)

一般不建议直接缩小 swap,正确做法是:

  1. 关闭 swap
  2. 删除
  3. 重新创建更小的新 swap

五、删除 swap(彻底移除)

sudo swapoff /swapfile
sudo rm /swapfile
sudo sed -i '/\/swapfile/d' /etc/fstab

六、调整 swap 使用策略(可选)

swappiness(控制内存不足时才用 swap)

查看:

cat /proc/sys/vm/swappiness

临时修改:

sudo sysctl vm.swappiness=10

永久修改:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

推荐值:

  • 桌面:10–30
  • 服务器:5–10
  • 内存极小:60

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

内存大小 建议 swap
≤ 2G 2 × 内存
2–8G 等于内存
8–64G 0.5 × 内存
≥ 64G 4–8G(或不用)

八、常见问题

❓ swap 不生效?

  • 检查权限:chmod 600
  • 检查 fstab
  • 重启后确认

❓ 云服务器 swap 为 0?

  • 默认很多云厂商不创建 swap
  • 手动创建 swap 文件即可

如果你告诉我:

  • 系统版本(Ubuntu / CentOS / Rocky / Debian)
  • 是物理机还是云服务器
  • 增大 / 减小 / 删除

我可以给你精确到命令级别的方案。

0