一、什么是 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:每次写入 1MBcount=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 解决的是“内存压力缓冲”问题,分区方案解决的是“磁盘组织和长期维护”问题。理解这两者的作用边界后,服务器资源规划会更清楚,也更容易做出适合业务的分区方案。