在Linux系统管理中,Swap分区(即交换分区)作为物理内存的延伸,当系统内存不足时,会将部分暂时不用的数据写入Swap分区,从而释放内存供更紧急的任务使用,CentOS系统在默认安装时可能未配置或仅配置了较小的Swap分区,当运行内存密集型应用(如虚拟机、数据库服务)时,适当增加Swap分区可有效提升系统稳定性,本文将详细介绍在CentOS系统中增加Swap分区的完整步骤、注意事项及相关优化技巧。

增加Swap分区前的准备工作
在操作前,需明确系统当前Swap状态及需求,通过free -h命令可查看当前内存和Swap的使用情况,
              total        used        free      shared  buff/cache   available
Mem:           3.8Gi       1.2Gi       2.1Gi       123Mi       547Mi       2.4Gi
Swap:          2.0Gi          0B       2.0Gi若Swap分区不足或未分配,需进一步规划,建议Swap分区大小根据物理内存确定,一般遵循以下原则:
- 物理内存 ≤ 2GB时,Swap大小为内存的2倍;
- 2GB < 物理内存 ≤ 8GB时,Swap大小与内存相等;
- 物理内存 > 8GB时,Swap大小可设置为内存的50%或更多,但通常不超过16GB。
需确保磁盘有足够的未分配空间,可通过fdisk -l或lsblk命令查看磁盘分区情况。
使用文件方式增加Swap分区(推荐)
文件方式创建Swap分区无需修改磁盘分区表,操作灵活且风险较低,适合大多数场景,以下是具体步骤:
创建Swap文件
使用dd命令创建指定大小的Swap文件,例如创建4GB的Swap文件:
dd if=/dev/zero of=/swapfile bs=1M count=4096
参数说明:
- if=/dev/zero:输入文件为/dev/zero(产生连续的零字节);
- of=/swapfile:输出文件路径为/swapfile;
- bs=1M:块大小为1MB;
- count=4096:块数量为4096,即4GB(4096×1MB)。
设置文件权限
Swap文件需仅允许root用户访问,避免安全风险:
chmod 600 /swapfile
格式化为Swap文件
使用mkswap命令将文件格式化为Swap格式:

mkswap /swapfile
启用Swap文件
通过swapon命令激活Swap文件:
swapon /swapfile
永久挂载Swap文件
为使Swap文件在系统重启后自动生效,需修改/etc/fstab文件,添加以下行:
/swapfile swap swap defaults 0 0
可通过echo '/swapfile swap swap defaults 0 0' >> /etc/fstab命令追加。
验证Swap分区
执行free -h或swapon --show命令确认Swap分区已成功添加:
NAME      TYPE SIZE USED PRIO
/swapfile file   4G   0B   -2使用分区方式增加Swap分区
若磁盘有未分配分区,可直接创建Swap分区,性能通常优于文件方式,步骤如下:
创建新分区
使用fdisk或parted工具创建分区,例如使用fdisk /dev/sdb:
- 输入n创建新分区;
- 选择分区类型(主分区或逻辑分区);
- 指定分区起始和结束扇区;
- 输入t设置分区类型,输入82(Linux Swap类型);
- 输入w保存并退出。
格式化分区
使用mkswap命令格式化分区:
mkswap /dev/sdb1
启用并挂载分区
参考文件方式的步骤4和5,激活分区并修改/etc/fstab文件。

Swap分区的优化与管理
调整Swappiness参数
swappiness参数控制内核将内存数据写入Swap分区的倾向(取值0-100,默认60),可通过cat /proc/sys/vm/swappiness查看当前值,对于内存充足的系统,可适当降低该值以减少Swap使用,
sysctl vm.swappiness=10
为永久生效,需在/etc/sysctl.conf中添加vm.swappiness=10。
删除Swap分区
若需移除Swap文件或分区,先通过swapoff命令禁用,再删除文件或调整分区表:
swapoff /swapfile rm /swapfile
或对于分区:
swapoff /dev/sdb1 fdisk /dev/sdb # 删除分区
同时需从/etc/fstab中删除相关条目。
相关问答FAQs
问题1:Swap分区设置过大或过小会对系统产生什么影响?
解答:Swap分区过小可能导致内存不足时系统频繁使用Swap,甚至触发OOM(Out of Memory) Killer,导致进程被终止;过大则会浪费磁盘空间,且Swap写入速度较慢,可能影响系统响应速度,建议根据实际内存需求合理配置,通常不超过物理内存的2倍(大内存场景可适当减少比例)。
问题2:如何检查Swap分区的使用情况和性能?
解答:可通过vmstat 1命令实时监控Swap的si(从Swap读入内存)和so(写入Swap)值,若持续较高说明内存不足;使用iotop或iostat -x 1查看Swap设备的I/O性能,若磁盘繁忙(%util接近100%),可能需升级SSD或优化应用内存使用。free -s 5可定期输出内存和Swap状态,便于长期观察趋势。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
 
 
 
  
  
  
  
 
发表回复