centos swapper最佳配置建议
导读:CentOS 交换空间与 swappiness 配置建议 一 容量规划 术语说明:日常所说的“swapper”在 Linux 中对应的是交换空间(swap),可以是交换分区或交换文件。容量规划优先于调参,目标是兼顾稳定性与性能。 容量建议...
CentOS 交换空间与 swappiness 配置建议
一 容量规划
- 术语说明:日常所说的“swapper”在 Linux 中对应的是交换空间(swap),可以是交换分区或交换文件。容量规划优先于调参,目标是兼顾稳定性与性能。
- 容量建议(面向服务器,且不启用休眠):
- ≤ 2GB 内存:swap ≈ 2 × 内存
- 2–8GB 内存:swap ≈ 内存大小
- > 8GB 内存:swap 至少 4GB,通常建议 4–8GB 区间
- > 64GB 内存:仍建议保留 ≥ 4GB 的 swap,且一般不建议启用休眠(hibernate)
- 若需要启用休眠,swap 容量应不小于物理内存总量(用于保存内存镜像)。
- 传统“swap = 1.5×~2× 内存”的经验值更偏向桌面或内存紧张场景;现代服务器内存充足时,过大的 swap 会掩盖内存瓶颈,且增加 SSD 磨损,应谨慎设置。
二 创建与持久化
- 交换文件方式(灵活易调整):
- 创建与启用示例(8GB):
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo swapon --show - 持久化:在 /etc/fstab 添加
/swapfile none swap sw 0 0
- 创建与启用示例(8GB):
- 交换分区方式(性能略优、布局更固定):
- 分区与启用示例(创建 16GB 分区 /dev/sda3):
sudo fdisk /dev/sda # 新建分区,类型设为 Linux swap(82) sudo mkswap /dev/sda3 sudo swapon /dev/sda3 - 持久化:在 /etc/fstab 添加
/dev/sda3 none swap sw 0 0
- 分区与启用示例(创建 16GB 分区 /dev/sda3):
- 多交换区与优先级:可配置多个 swap(分区/文件),用 swapon -p N 设置优先级(1–32767,数值越高优先级越高),例如:
多交换区可在一定程度上均衡 IO 负载。swapon -p 10 /dev/sda3 swapon --show
三 swappiness 与内核行为
- 含义与默认值:vm.swappiness 控制内核使用 swap 的倾向,取值 0–100。CentOS 7 常见默认值为 30,表示当内存使用率约达 70% 时开始更积极地考虑使用 swap。
- 推荐设置(按场景):
- 内存充足、交互/计算密集型:建议 10–20,尽量多用物理内存,减少不必要换出。
- 内存紧张或存在突发峰值:可提高到 30–60,提前换出冷页以留出内存给热点工作集。
- 临时调整:
sudo sysctl vm.swappiness=10 - 永久调整:在 /etc/sysctl.conf 写入
vm.swappiness=10并执行sudo sysctl -p
- 重要说明:vm.swappiness=0 并非“完全不用 swap”,只是尽可能延迟;当内存紧张时仍会使用 swap,且可能带来更高回收压力。
四 监控与优化
- 常用观测命令:
- 容量与启用状态:
free -h、swapon --show、cat /proc/swaps - 综合资源与换入换出:
vmstat 1、top/htop
- 容量与启用状态:
- 优化思路:
- 若出现频繁换入换出(si/so 持续不为 0),优先考虑增加物理内存或降低应用内存占用,其次再调整 swappiness。
- 存在多个 swap 时,合理设置优先级,尽量让更快的存储(如 NVMe)拥有更高优先级。
- 在SSD 上启用 swap 会引入写放大与磨损;在部分云主机环境中,出于寿命与性能策略可能不建议启用或需严格限流,请结合云厂商指引与业务容忍度决策。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos swapper最佳配置建议
本文地址: https://pptw.com/jishu/772411.html
