CentOS swapper在不同版本中的差异主要体现在内核版本、默认配置、管理工具及生命周期等方面
1. 内核版本与基础支持
- CentOS 7:基于Linux 3.10内核,是CentOS长期支持版本(LTS),默认文件系统为XFS,引入Systemd作为服务管理器。swapper管理依赖传统工具(如
fdisk创建分区、mkswap格式化),内核对swap的支持稳定但缺乏新特性。
- CentOS 8:升级至Linux 4.18内核,支持更多现代硬件和虚拟内存优化(如更高效的swap缓存机制)。但该版本生命周期较短(2021年底停止支持),swapper配置需适配DNF软件包管理器,部分旧命令可能存在兼容性问题。
- CentOS Stream:采用滚动更新模式,内核版本更贴近Fedora(如Fedora Rawhide的最新内核),swapper管理可能提前集成新特性(如更灵活的swap分区动态调整),但稳定性需根据滚动更新的节奏评估。
2. 默认swap配置规则
- CentOS 7及更早:默认swap分区大小为物理内存的1.5倍(若物理内存≤2GB,则默认等于物理内存;若>2GB,则为1.5倍)。此规则旨在平衡内存不足时的磁盘交换需求与磁盘空间利用率。
- CentOS 8及更高:调整了默认swap大小计算逻辑:
- 物理内存<8GB时,swap大小为物理内存的2倍;
- 物理内存≥8GB时,swap大小为物理内存 + (物理内存 - 8GB)/2(例如,16GB内存的默认swap为16+4=20GB)。此调整更注重大内存系统的性能,减少不必要的磁盘交换。
3. 管理工具与配置方式
- CentOS 7:
- 创建swap分区:使用
fdisk/parted划分分区→mkswap格式化→swapon激活;
- 创建swap文件:
dd if=/dev/zero of=/swapfile bs=1M count=4096(4GB)→chmod 600→mkswap→swapon→添加到/etc/fstab实现开机自启;
- 调整swappiness(内核交换倾向,0-100):修改
/etc/sysctl.conf中的vm.swappiness值。
- CentOS 8:
- 基本命令与CentOS 7类似,但部分工具(如
systemctl)替代了SysVinit命令;
- swap文件创建步骤一致,但需通过DNF安装
util-linux包以获取mkswap等工具;
- 配置文件路径(如
/etc/fstab)未变,但需注意SELinux上下文(若启用SELinux,需用chcon设置正确上下文)。
4. 生命周期与支持情况
- CentOS 7:截至2025年,仍处于LTS阶段(支持至2024年6月,后续可能延长),swapper管理稳定,适合生产环境长期使用。
- CentOS 8:已于2021年底停止官方支持,不再接收安全更新,swapper相关漏洞无法修复,不建议新项目部署。
- CentOS Stream:滚动更新模式,无固定生命周期,swapper功能随内核和软件包更新而变化,适合追求最新特性的用户,但稳定性需自行评估。
5. swappiness默认值变化
- CentOS 7:默认
vm.swappiness值为60(内核3.10的默认设置),表示系统在物理内存使用率达40%时开始使用swap。
- CentOS 8:默认
vm.swappiness值仍为60,但部分场景下(如容器化环境)可能通过systemd的DefaultMemoryLow参数调整,更注重内存保留。
综上,CentOS不同版本的swapper差异主要集中在内核支持、默认配置逻辑及管理工具适配上,其中CentOS 7与CentOS 8的差异最为明显(内核、生命周期),而CentOS Stream则更侧重灵活性与前沿性。