温馨提示×

怎样优化ubuntu swapper

小樊
64
2026-09-03 13:52:07
栏目: 智能运维

在 Ubuntu(以及其他 Linux 发行版)中,swapper / swap 主要用于在物理内存不足时把内存页换出到磁盘。优化 swap 的核心目标是:避免频繁换页影响性能,同时在内存紧张时提供缓冲。下面从多个维度说明如何优化 Ubuntu 的 swap。


一、先确认当前 Swap 状态

swapon --show
free -h

查看:

  • 是否启用了 swap
  • swap 大小
  • 使用量

二、调整 Swappiness(最重要)

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

  • 0:尽量不使用 swap
  • 10:内存紧张时才用
  • 60:Ubuntu 默认值
  • 100:积极使用 swap

推荐值

  • 桌面 / 开发机:10 或 20
  • 服务器(大内存):10
  • 低内存设备(≤2GB):60

临时修改

sudo sysctl vm.swappiness=10

永久修改

sudo nano /etc/sysctl.conf

添加:

vm.swappiness=10

生效:

sudo sysctl -p

三、调整 vfs_cache_pressure

控制 inode/dentry 缓存回收倾向:

vm.vfs_cache_pressure=50

(默认 100,降低可减少不必要的回收)


四、使用更快的 Swap 设备(SSD / NVMe)

Swap 性能高度依赖磁盘速度:

✅ 推荐:

  • NVMe SSD
  • SATA SSD

❌ 不推荐:

  • HDD(机械硬盘)
  • USB 闪存

检查磁盘类型

lsblk -d -o name,rota

ROTA=1 表示机械盘


五、使用 zram(推荐现代方案)

zram 是在内存中压缩 swap,速度远快于磁盘 swap。

安装

sudo apt install zram-tools

配置

sudo nano /etc/default/zramswap

示例:

ALGO=lz4
SIZE=50%

重启:

sudo systemctl restart zramswap

✅ 适合:

  • 笔记本
  • 小内存设备
  • 桌面系统

六、合理设置 Swap 大小

官方经验值(Ubuntu)

内存 Swap
≤2GB 2× RAM
2–8GB = RAM
8–64GB 4–8GB
>64GB 不必须

休眠(hibernate)需求

swap ≥ RAM

七、调整 Swap 文件(比分区更灵活)

创建 swap 文件

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

开机自动挂载

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

八、多 Swap 设备优先级

swapon --priority

示例:

/swapfile   none swap sw,pri=100 0 0
/dev/sdb1   none swap sw,pri=50  0 0

优先级高者先使用。


九、关闭不必要的 Swap(大内存服务器)

sudo swapoff -a

并从 /etc/fstab 删除 swap 行。

⚠ 风险:OOM 时可能直接杀进程


十、监控 Swap 使用

vmstat 1
sar -W 1

关注:

  • si / so(swap in/out)
  • 持续 >0 说明内存不足

总结(推荐组合)

✅ 桌面 Ubuntu

  • swappiness=10
  • zram + 小 swapfile

✅ 服务器

  • swappiness=10
  • SSD swap
  • 大内存可不用 swap

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

  • Ubuntu 版本
  • 内存大小
  • 是否用 SSD
  • 用途(桌面 / 服务器 / 容器)

我可以给你一套针对性配置方案。

0 踩