在 CentOS(以及一般的 Linux 系统)中,swapper(交换空间 / swap)启用通常有以下几个原因和作用:
一、什么是 swapper
在 CentOS 中:
- swapper 通常指 swap 分区或 swap 文件
- 它是磁盘上的一块空间,用来“临时存放内存中的数据”
- 当物理内存(RAM)不足时,系统会把不常用的内存页换出到 swap
二、CentOS 启用 swapper 的常见原因
1️⃣ 物理内存不足
当系统运行的程序占用内存超过物理内存时:
- Linux 不会立刻 OOM(内存耗尽)
- 而是把部分内存写到 swap,腾出 RAM
✅ 这是 最主要原因
2️⃣ 系统安装时自动创建
CentOS 在以下情况会自动启用 swap:
- 安装时分配了 swap 分区
- 或使用 LVM 时默认创建 swap
- 或使用 cloud-init(云服务器)自动配置
查看是否已启用:
swapon --show
free -h
3️⃣ 内核参数或系统配置强制使用
某些情况会“鼓励”使用 swap:
cat /proc/sys/vm/swappiness
- 默认值通常是
30
- 表示内存使用到 70% 时开始使用 swap
即使内存没满,也可能启用 swap。
4️⃣ 某些服务和软件要求 swap
以下场景常要求 swap:
- Oracle / MySQL(部分版本)
- Hadoop / Elasticsearch
- 容器编排(K8s 旧版本)
- 休眠(hibernate)功能
5️⃣ 系统休眠(Suspend to Disk)
如果启用了:
systemctl hibernate
必须使用 swap 保存内存状态。
三、如何判断 swap 是否必要?
✅ 需要 swap 的情况
- 内存较小(≤ 2GB / 4GB)
- 跑数据库或 Java 应用
- 云服务器不确定负载
- 需要系统稳定性优先
❌ 可关闭 swap 的情况
- 内存充足(≥ 16GB)
- 高性能计算 / 低延迟服务
- 明确知道不会 OOM
四、如何关闭或调整 swap(如不需要)
临时关闭
swapoff -a
永久关闭
编辑:
/etc/fstab
注释掉 swap 行
降低 swap 使用倾向
sysctl vm.swappiness=10
五、总结一句话
CentOS 启用 swapper,本质是为了在内存不足或系统策略需要时,保障系统不崩溃、提高稳定性。
如果你愿意,可以贴一下:
free -h
swapon --show
我可以帮你判断 你的服务器到底需不需要 swap。