温馨提示×

什么是CentOS的Swapper分区

小樊
49
2026-01-06 04:56:47
栏目: 智能运维

CentOS 中的 Swapper 分区概念

CentOS 里,大家口语中常把 Swap 分区称作“Swapper 分区”。它本质上是用于虚拟内存的一块磁盘空间:当**物理内存(RAM)**不足时,内核会把暂时不活跃的内存页换出到这块空间;当进程再次需要这些数据时,再从 Swap 换回到内存。这样可避免内存耗尽导致进程无法分配内存,但读写速度会比 RAM 慢很多,因此 Swap 更多起到“兜底与稳定”的作用,而非提升性能的手段。

作用与工作方式

  • 核心作用是提供虚拟内存/交换空间,在内存紧张时进行页换出/换入,保障系统继续运行。
  • 数据以“页”为单位在内存与 Swap 之间移动,Linux 常见页大小为4KB
  • 典型现象是:当可用内存趋紧,系统开始使用 Swap,整体响应可能变慢(磁盘 IO 成为瓶颈)。

是否需要与常见大小建议

  • 是否需要:现代服务器即便内存较大,也通常建议配置一定大小的 Swap,用于应对突发负载、内存泄漏、休眠(Hibernate)等场景;若明确不打算使用休眠且内存充足,可减小或省略,但完全无 Swap 在内存紧张时风险更高。
  • 大小建议(常见实践):
    • 不启用休眠时(红帽/社区常见建议):
      • ≤2GB RAM:Swap ≈ 2×RAM
      • 2–8GB RAM:Swap ≈ RAM
      • >8GB RAM:Swap ≥ 4GB(通常不超过 8GB)
    • 启用休眠时:Swap 至少应≥ 物理内存总量(用于保存休眠镜像)。
    • 传统经验值(更偏向桌面/通用场景):Swap 约为 1–2 倍 RAM,但服务器场景常按上面的“更保守”规则设置。
    • 快速参考表:
      物理内存 建议 Swap(不启用休眠) 启用休眠建议
      ≤2GB ≈ 2×RAM ≥ RAM
      2–8GB ≈ RAM ≥ RAM
      >8GB ≥ 4GB(通常 ≤8GB) ≥ RAM
    以上建议来自长期实践与主流发行版文档的归纳,实际仍应结合应用内存特征与性能目标微调。

查看与配置要点

  • 查看状态与占用:
    • 查看是否启用与容量:swapon -sfree -hcat /proc/swaps
    • 查看使用倾向:cat /proc/sys/vm/swappiness(值越大越倾向使用 Swap,典型范围 0–100
  • 临时调整策略:sysctl vm.swappiness=10(示例值,按需调整)
  • 永久生效:在 /etc/sysctl.conf 中设置 vm.swappiness=10 后执行 sysctl -p
  • 增加 Swap(示例:创建 2GB 的 Swap 文件)
    1. dd if=/dev/zero of=/data/swap bs=1M count=2048
    2. mkswap /data/swap
    3. chmod 0600 /data/swap(安全权限建议)
    4. swapon /data/swap
    5. 开机自动挂载:在 /etc/fstab 追加 /data/swap swap swap defaults 0 0
  • 释放被占满的 Swap(谨慎操作):先确认业务允许,再执行 swapoff <设备/文件>swapon <设备/文件>;也可先调低 swappiness 再执行,以减少对业务的影响。

0