温馨提示×

怎样优化ubuntu swap

小樊
38
2026-07-27 14:48:59
栏目: 智能运维

优化 Ubuntu 的 Swap 可以从减少不必要的 swap 使用、提升 swap 性能、合理配置 swap 大小三个方面入手。下面按实用程度给你一套完整方案。


一、先确认当前 Swap 状态

swapon --show
free -h
cat /proc/sys/vm/swappiness

二、调整 Swappiness(最重要)

swappiness 决定系统使用 swap 的积极程度(0–100)。

  • 默认一般是 60
  • 建议值:
    • 桌面 / 开发机:10–30
    • 服务器(大内存):1–10
    • 内存极小(≤2G):60–80

临时设置

sudo sysctl vm.swappiness=10

永久生效

sudo nano /etc/sysctl.conf

添加或修改:

vm.swappiness=10

生效:

sudo sysctl -p

这是最推荐的第一步优化


三、优化 Swap 大小(经验建议)

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

⚠️ 除非需要休眠(hibernate),否则不需要太大 swap


四、使用 Swapfile(比分区灵活)

如果你现在用的是 swap 分区,建议换成 swapfile,方便调整。

1️⃣ 新建 swapfile(例如 8G)

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

2️⃣ 开机自动挂载

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

3️⃣ 删除旧 swap(可选)

sudo swapoff /dev/sdX
sudo nano /etc/fstab  # 删除旧 swap 行

五、提升 Swap 性能(SSD / NVMe)

1️⃣ 使用 SSD / NVMe

Swap 在:

  • ✅ SSD:可接受
  • ✅ NVMe:较好
  • ❌ HDD:严重影响性能

2️⃣ 调整缓存压力

sudo sysctl vm.vfs_cache_pressure=50

写入 /etc/sysctl.conf 永久生效。


六、避免频繁 swap(进阶)

1️⃣ 限制某些程序内存

systemctl set-property your.service MemoryMax=2G

2️⃣ 检查内存泄漏

htop
ps aux --sort=-%mem

七、是否应该完全关闭 Swap?

不建议

  • OOM(内存溢出)风险更高
  • 某些程序会异常退出

正确做法:保留 swap,但降低使用频率


八、推荐配置(总结)

vm.swappiness=10
vm.vfs_cache_pressure=50
swapfile = 内存的 0.5–1 倍
使用 SSD / NVMe

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

  • 内存大小
  • 是否为服务器 / 桌面
  • 是否使用 SSD
  • 是否有卡顿或 OOM 问题

我可以给你一套完全定制化的 swap 优化方案

0