在 CentOS(以及大多数 Linux 系统)中,swap(交换分区/交换文件) 的作用是作为内存的补充,主要功能如下:
1. 内存不足时的“备用内存”
当物理内存(RAM)使用完时,系统会把不常用或暂时不用的内存数据写到 swap 中,从而释放物理内存给更需要的进程使用,避免系统因内存耗尽而卡死或崩溃。
2. 防止 OOM(Out Of Memory)崩溃
如果没有 swap,当内存耗尽时,Linux 的 OOM Killer 会强制杀掉占用内存最多的进程(可能是数据库、Java 服务等),导致服务异常。
有 swap 可以缓冲这一过程,给系统或运维人员处理时间。
3. 支持系统休眠(Hibernate)
如果 CentOS 使用 休眠(suspend to disk) 功能,系统会把内存中的所有数据写入 swap,下次开机再从 swap 恢复。
注意:休眠通常需要 swap ≥ 物理内存大小。
4. 优化内存使用效率
Linux 会把很少使用的内存页移入 swap,把宝贵的 RAM 留给:
- 活跃进程
- 文件系统缓存(cache/buffer)
这在内存较小的服务器上尤其有用。
5. 特殊场景下的稳定性保障
例如:
- 内存较小(如 1G / 2G)的 VPS
- 运行突发内存占用程序(编译、备份、数据分析)
- 云服务器内存可突发但有限制
swap 的缺点(也要注意)
- 速度慢:swap 在磁盘上,比 RAM 慢很多
- **频繁 swap(swap thrashing)**会导致系统极卡
- SSD 上频繁写入 swap 会影响寿命(影响较小)
常见建议(CentOS)
- 内存 ≤ 2G:swap = 2×内存
- 内存 2–8G:swap = 等于内存
- 内存 > 8G:swap = 4–8G(或仅用于休眠)
- 服务器追求性能:可小 swap 或无 swap(但风险更高)
如果你愿意,我可以帮你:
- 查看 CentOS 当前 swap 使用情况
- 教你如何添加 / 删除 / 调整 swap
- 判断是否“swap 用太多”需要优化