温馨提示×

centos swapper和内存关系

小樊
53
2026-10-17 19:13:41
栏目: 智能运维

在 CentOS(以及其它 Linux 发行版)里,swapper(交换空间 / swap) 和 内存(RAM) 是密切相关的,二者共同决定系统的可用“内存资源”。下面用通俗的方式说明它们的关系。


一、什么是内存(RAM)

  • 内存是物理内存,速度极快
  • 用于存放:
    • 正在运行的程序
    • 程序使用的缓存、缓冲区
  • 特点:
    • 断电数据丢失
    • 容量有限(如 4G / 8G / 32G)

二、什么是 swapper / swap

在 CentOS 中:

  • swapper 通常指:
    • 内核中的交换子系统
    • 或 swap 分区 / 交换文件
  • swap 是磁盘上的一块空间,用来“临时当内存用”

常见形式:

  • swap 分区(CentOS 安装时常见)
  • swap 文件(如 /swapfile)

三、swapper 和内存的关系(核心)

1️⃣ 内存不足时 → 使用 swap

当 物理内存用完:

  • Linux 会把不常用的内存页移到 swap
  • 腾出 RAM 给更需要的程序

关系示意:

RAM 满 → 部分数据写入 swap → 程序继续运行

⚠️ 代价:

  • 磁盘比内存慢得多
  • 系统可能变卡(swap 抖动)

2️⃣ 内存充足时 → swap 基本不用

  • 正常情况:swap 使用量很低或 0
  • Linux 仍可能“预交换”少量不活跃页面(受 swappiness 控制)

3️⃣ swappiness 参数(CentOS 关键)

控制“内存 vs swap 的使用倾向”:

cat /proc/sys/vm/swappiness

常见值:

  • 0:尽量不用 swap
  • 10~30:服务器推荐
  • 60:CentOS 默认(偏激进)

修改示例:

sysctl vm.swappiness=10

4️⃣ OOM 与 swap 的关系

  • 有 swap:
    • 内存紧张时先 swap,避免立刻杀进程
  • 无 swap + 内存耗尽:
    • 触发 OOM Killer
    • 系统强制杀掉占用内存最多的进程

四、CentOS 中查看内存和 swap 关系

查看整体情况

free -h

示例:

              total   used   free  swap
Mem:           8G     6G     2G
Swap:          4G     1G     3G

查看 swap 使用来源

swapon -s

查看内存压力

vmstat 1

关注:

  • si(swap in)
  • so(swap out)

五、生产环境建议(CentOS)

  • 物理服务器:
    • 内存 ≥ 8G:swap 可设 2–4G
    • 数据库服务器:swappiness 调低(10 左右)
  • 虚拟机 / 云服务器:
    • 可小 swap 或关闭(取决于云厂商)
  • 绝对不要:
    • 长期高 swap 使用(说明内存真的不够)

六、一句话总结

内存是“快但小”的资源,swapper 是“慢但大”的兜底;
swap 不是内存的替代品,只是内存不够时的安全网。

如果你愿意,我可以:

  • 帮你分析 free / vmstat 输出
  • 教你 CentOS 添加/删除 swap
  • 解释 swap 导致系统卡顿的排查思路

0 踩