怎样提升centos swapper性能
导读:提升 CentOS 交换与 swapper 相关性能 一 概念与判断 在 Linux 中,swapper是内核的空闲进程(PID 0),本身不“执行”交换;交换行为由内核的虚拟内存子系统完成。性能问题通常表现为:应用延迟升高、磁盘 I/O...
提升 CentOS 交换与 swapper 相关性能
一 概念与判断
- 在 Linux 中,swapper是内核的空闲进程(PID 0),本身不“执行”交换;交换行为由内核的虚拟内存子系统完成。性能问题通常表现为:应用延迟升高、磁盘 I/O 增大、控制台卡顿,这些往往与**频繁换入换出(si/so)**有关。判断是否存在交换压力,可用:
- 查看内存与交换概况:
free -h - 观察换入换出:
vmstat 1(关注 si/so 列是否持续非零) - 查看交换设备与优先级:
swapon --show - 实时观察:
watch -n 1 "free -h | grep Swap"
若 si/so 长期不为 0,说明系统正在频繁交换,应优先减少换出或提升交换/内存子系统性能。
- 查看内存与交换概况:
二 快速优化步骤
- 降低换出倾向(swappiness)
- 查看与调整:
sysctl vm.swappiness(常见默认值为60;更低的值让内核更少使用交换,极端内存压力下仍可能发生交换,即使设为0也不会完全禁用交换)。 - 临时生效:
sudo sysctl vm.swappiness=10 - 永久生效(推荐):在
/etc/sysctl.d/99-custom-swap.conf写入vm.swappiness=10,执行sudo sysctl --system或sudo sysctl -p。
- 查看与调整:
- 调整文件系统缓存回收倾向
vm.vfs_cache_pressure默认 100(更积极回收目录/索引节点缓存)。若元数据缓存对性能重要,可适当降低(如 50)以减少回收压力:sudo sysctl vm.vfs_cache_pressure=50(同样写入 sysctl 配置以持久化)。
- 优化交换设备使用
- 多交换设备时设置优先级:在
/etc/fstab中为 swap 增加pri=,例如/swapfile none swap sw,pri=10 0 0,让更快的设备(如 NVMe)优先使用。
- 多交换设备时设置优先级:在
- 监控与验证
- 调整后持续观察
free -h、vmstat 1、swapon --show,确认 Swap 使用率下降、si/so 减少,且应用延迟改善。
- 调整后持续观察
三 交换空间与位置优化
- 合理规划容量
- 对于内存较大的服务器(如 ≥64GB)且运行内存密集型、低延迟敏感的服务,可仅保留少量 Swap作为 OOM 缓冲;对一般服务器,常见建议为内存的1–2 倍,但在内存充足时可显著降低比例,避免不必要的磁盘 I/O。
- 使用更快的存储介质与位置
- 优先将 Swap 放在NVMe SSD或性能更好的设备上;若已有多块盘,使用优先级让更快设备优先。
- 使用压缩交换技术
- 启用 zswap(内核内置的压缩交换缓存,优先在内存中压缩页面,减少实际落盘)或 zram(在内存中创建压缩块设备充当 swap),可在有限 RAM 下显著缓解交换压力。具体启用方式随内核与发行版而异,需结合系统支持情况配置。
- 调整大小的实操示例(如需变更/新增 swap 文件)
- 创建与启用:
sudo fallocate -l 4G /swapfile & & sudo chmod 600 /swapfile & & sudo mkswap /swapfile & & sudo swapon /swapfile - 持久化:在
/etc/fstab添加/swapfile swap swap defaults 0 0 - 验证:
swapon --show、free -h
上述容量与位置策略应与业务内存特征、磁盘性能共同评估,避免“为换而换”。
- 创建与启用:
四 针对数据库与高性能场景的要点
- 数据库等低延迟服务
- 建议将 vm.swappiness 调至 1–10,尽量减少缓存页被换出;同时结合应用内存绑定与合理的
innodb_buffer_pool_size等参数,避免内存争用导致被动换出。
- 建议将 vm.swappiness 调至 1–10,尽量减少缓存页被换出;同时结合应用内存绑定与合理的
- NUMA 架构优化
- 多 NUMA 节点服务器可能出现内存分配不均、加剧换页。可用
numactl -H查看节点分布;必要时采用**交错内存分配(interleave)**或在数据库层面启用如 innodb_numa_interleave=1(MySQL 8.0+)以均衡内存压力,降低因局部内存紧张引发的交换。
- 多 NUMA 节点服务器可能出现内存分配不均、加剧换页。可用
五 风险提示
- 将 swappiness 设得过低(如接近 0)会在内存紧张时延迟回收,增加 OOM 风险;将 vm.vfs_cache_pressure 设得过低会增加元数据回收压力,可能影响文件系统操作性能。任何参数调整都应结合基线监控数据与业务压测逐步验证,避免一次性大幅改动。生产环境建议先在测试环境验证,再灰度上线。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样提升centos swapper性能
本文地址: https://pptw.com/jishu/763662.html
