在使用CentOS系统时,随着业务量增长或应用需求变化,原有的分区容量可能无法满足实际需求,当系统运行高负载任务时,若物理内存(RAM)不足,swap分区(虚拟内存)会作为补充资源帮助系统稳定运行,但若swap分区过小,可能导致性能下降甚至服务崩溃,合理调整swap分区是运维工作中不可忽视的一环。
以下将详细说明如何在CentOS系统中安全、高效地扩大swap分区。

第一步:检查当前swap分区状态
操作前需确认系统当前的swap分区容量及使用情况,通过以下命令查看:
- free -h
输出结果中,“Swap”行显示总容量、已使用量及剩余空间,若发现剩余空间长期不足,则需考虑扩容。
可通过swapon -s
命令查看swap分区的详细信息,包括设备路径和优先级。
**第二步:创建新的swap文件
直接调整物理分区可能涉及数据风险,因此推荐通过创建swap文件的方式扩容,此方法灵活且无需重新划分磁盘空间。
1、分配存储空间

使用dd
命令生成一个指定大小的文件(例如新增4GB):
- sudo dd if=/dev/zero of=/swapfile bs=1G count=4
参数说明:
if=/dev/zero
:输入源为空设备,生成全零文件。
of=/swapfile
:输出文件路径。
bs=1G
:每次写入的块大小为1GB。
count=4
:生成4个块,总大小为4GB。

2、设置文件权限
swap文件需严格权限控制,避免被篡改:
- sudo chmod 600 /swapfile
3、格式化为swap类型
将文件转换为swap格式:
- sudo mkswap /swapfile
第三步:启用并验证swap文件
1、临时激活swap文件
- sudo swapon /swapfile
执行后,再次运行free -h
可看到swap总容量已增加。
2、永久生效配置
为避免重启后配置丢失,需将swap文件信息写入/etc/fstab
:
- echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
3、验证优先级(可选)
若系统存在多个swap分区或文件,可通过-p
参数设置优先级,数值越高,系统越优先使用:
- sudo swapon -p 100 /swapfile
第四步:调整swappiness参数
swappiness参数决定系统使用swap分区的积极性,默认值为30(范围0-100),若物理内存充足但swap使用频繁,可适当降低该值以减少I/O开销:
- sudo sysctl vm.swappiness=10
如需永久生效,编辑/etc/sysctl.conf
文件,添加:
- vm.swappiness=10
**第五步:注意事项与风险规避
1、数据备份
操作前建议对重要数据备份,避免误操作导致文件丢失。
2、资源占用评估
swap文件需占用磁盘空间,需确保存储设备有足够剩余容量。
3、性能影响
swap分区本质是磁盘空间,读写速度远低于物理内存,若系统频繁使用swap,应考虑升级物理内存。
4、兼容性问题
部分老旧系统或特殊环境可能不支持swap文件,需改用物理分区方式扩容。
**个人观点
合理分配swap分区是保障服务器稳定运行的基础操作,对于大多数场景,建议swap容量设置为物理内存的1-2倍;若物理内存超过16GB,可适当降低比例,实际操作中需结合业务负载动态调整,并通过监控工具(如vmstat
或htop
)持续观察系统资源使用情况,遇到性能瓶颈时,优先排查代码或服务配置问题,而非盲目扩容硬件资源。