一、什么是 Swap

Swap 是磁盘上的一块空间,用来在物理内存不足时临时存放不活跃的数据页。它的核心作用不是替代内存,而是为操作系统提供一定的缓冲空间。

1.1 Swap 的主要作用

  • 扩展虚拟内存
  • 回收不活跃内存页
  • 在内存紧张时缓解系统压力
  • 为部分挂起场景提供临时数据存放空间

二、如何创建 Swap 文件

原始笔记演示的是通过文件方式扩展 Swap,这在临时扩容和实验环境中非常常见。

2.1 创建一个 1G 左右的测试文件

$ dd if=/dev/zero of=/tmp/1g bs=1M count=1000

参数含义:

  • if=/dev/zero:从零设备读入数据
  • of=/tmp/1g:输出到目标文件
  • bs=1M:每次写入 1MB
  • count=1000:总共写入 1000 个块

2.2 把文件转换成 Swap

$ mkswap /tmp/1g

查看文件类型:

$ file /tmp/1g

2.3 调整权限

$ chmod 600 /tmp/1g

因为 Swap 文件涉及内存数据安全,权限通常应尽量收紧。

2.4 查看当前 Swap 大小

$ free -h

2.5 启用和关闭 Swap

启用:

$ swapon /tmp/1g

再次查看:

$ free -h

关闭:

$ swapoff /tmp/1g

三、让 Swap 持久生效

3.1 写入 /etc/fstab

可以在 /etc/fstab 末尾追加:

/tmp/1g    swap    swap    defaults    0 0

这样系统重启后也能自动启用该 Swap 文件。

3.2 使用 /etc/rc.local

如果不想用 fstab,也可以写入:

$ echo "swapon /tmp/1g" >> /etc/rc.local

不过从规范性与可维护性看,仍更推荐 fstab

四、企业常见分区方案

实际工作中,分区规划往往取决于“数据是否重要”以及“未来是否容易扩展”。

4.1 服务器存放的数据不重要

分区 建议
/boot 推荐 1G 左右,用于放内核和引导文件
swap 如果内存大于 8G,常见给 8G;小于 8G 可按 1.5 倍到 2 倍配置,通常最大不超过 8G
/ 剩余空间都给根分区

4.2 服务器存放重要数据

分区 建议
/boot 推荐 1G 左右
swap 按内存大小规划
/ 一般给 40G 到 200G,用于系统和软件
/data 重要业务数据单独放在独立分区

4.3 暂时不确定数据是否重要

分区 建议
/boot 推荐 1G 左右
swap 按内存大小规划
/ 一般给 40G 到 200G
剩余空间 可以暂不划分,留给后续业务使用

五、分区规划的实用思路

如果从长期维护角度考虑,建议优先遵循下面几个原则:

  • 系统文件和业务数据尽量分离
  • 重要数据尽量单独挂载到 /data 等独立目录
  • Swap 不一定越大越好,要结合内存大小和业务类型看
  • 不确定未来需求时,保留一部分未分配空间通常比一次性全切更灵活

六、小结

Swap 解决的是“内存压力缓冲”问题,分区方案解决的是“磁盘组织和长期维护”问题。理解这两者的作用边界后,服务器资源规划会更清楚,也更容易做出适合业务的分区方案。