Linux 安装 Swap 交换分区大小标准(通用 + 生产服务器 + 个人 PC)

Linux 安装 Swap 交换分区大小标准(通用 + 生产服务器 + 个人 PC)

Swap 是硬盘虚拟内存,物理内存不够时把内存数据临时存到 Swap,SSD 服务器不建议过大 Swap,机械硬盘可适当放大,分四类场景给出标准方案。

一、通用官方推荐规则(红帽 RHEL、Debian/Ubuntu 通用)

1. 桌面 / 个人电脑(笔记本、台式机,会休眠)

休眠功能需要 Swap ≥ 物理内存,才能完整保存内存到硬盘实现关机休眠

表格

物理内存 RAM Swap 分区推荐大小 备注
≤2GB RAM × 2 2G 内存配 4G Swap
2GB~8GB RAM × 1.5 4G 内存配 6G Swap,8G 配 12G
8GB~16GB 等于 RAM 大小 16G 内存配 16G Swap
>16GB 8GB~16GB 32G/64G 内存无需超大 Swap,8G 足够,要休眠则等于内存

2. 服务器(生产环境,关闭休眠,无桌面)

服务器几乎不用休眠,仅作内存缓冲、OOM 兜底,SSD 环境优先小 Swap:

  1. RAM ≤4G:Swap = 4G
  2. 4G < RAM ≤16G:Swap = RAM
  3. 16G < RAM ≤64G:Swap = 16G
  4. RAM >64G:Swap = 8G~16G

高性能数据库、缓存服务(Redis、MySQL):Swap 建议 8G 以内,频繁使用 Swap 会严重拖慢性能。

3. 特殊场景:内存极小老机器(1G 及以下)

直接设置 Swap = RAM × 2,否则系统极易卡死。

二、现代云服务器 / SSD 优化建议(重点)

SSD 读写速度远快于机械盘,但Swap 频繁交换依然会大幅降性能:

  1. 云主机 32G/64G/128G 大内存:Swap 8G 足矣,甚至可以不分 Swap,靠调整vm.swappiness控制使用频率;
  2. 数据库、AI 算力服务器(昇腾、GPU 服务器):最小化 Swap(8G),业务尽量全部跑物理内存;
  3. 机械硬盘(HDD)服务器:Swap 按标准上限分配,HDD 交换延迟极高,避免业务触发 Swap。

三、swappiness 参数配套优化(分区大小配完必调)

vm.swappiness 取值 0~100,控制内核多积极使用 Swap:

  • 服务器(数据库 / 业务):vm.swappiness=10,内存快耗尽才用 Swap
  • 个人桌面电脑:vm.swappiness=60,平衡内存缓存与 Swap
  • 高性能算力 / 缓存服务:vm.swappiness=0(优先不碰 Swap)

临时生效:

复制代码
sysctl vm.swappiness=10

永久生效编辑 /etc/sysctl.conf 添加:

复制代码
vm.swappiness = 10

四、两种 Swap 实现方式对比

1. Swap 分区(安装系统时划分,推荐服务器)

  • 独立分区,性能稳定,适合装机阶段规划;
  • 缺点:装机时分配死,后期扩容麻烦。

2. Swap 文件(装机没分够后期扩容用)

无需重装系统,随时增减大小,云主机常用:

复制代码
# 创建8G交换文件示例
fallocate -l 8G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
# 写入/etc/fstab开机自动挂载
/swapfile swap swap defaults 0 0

五、避坑要点

  1. 不要分配超大 Swap(比如 64G 内存分 64G Swap):一旦触发交换,业务卡顿严重;
  2. NVMe SSD 不要上百 G Swap,浪费磁盘空间;
  3. 若机器永不休眠,不需要 Swap 等于内存;
  4. 内存≥128G 的超大型服务器,可直接不分 Swap,依靠监控预警内存溢出。

快速总结极简分配口诀

  • 家用要休眠:小内存翻倍,大内存等于内存,32G 以上 16G 封顶
  • 线上服务器不休眠:4G 内 4G,4-64G 等于内存,64G 以上统一 8~16G
  • SSD 大内存算力机:8G Swap 足够,调低 swappiness 减少交换
相关推荐
雯宝21 小时前
mnt_init 函数
linux
律宏阔1 天前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔1 天前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴1 天前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千1 天前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei371 天前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei371 天前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei371 天前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh1 天前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW1 天前
制造业高端化,为什么必须重估Linux和数据库?
linux