启用Swap分区可缓解Linux内存紧张问题,方法包括:一、创建并启用Swap文件;二、启用独立Swap分区;三、配置fstab实现开机自动挂载;四、调整swappiness优化性能;五、安全禁用与移除Swap。

如果您在Linux系统中发现内存资源紧张,应用程序频繁因内存不足而被终止,或者系统响应明显变慢,则可能是物理内存已接近耗尽,此时启用Swap分区可作为虚拟内存的补充,缓解内存压力。以下是开启Swap分区的具体方法:
一、创建Swap文件并启用
通过在根文件系统中创建一个专用的Swap文件,无需重新分区即可快速增加虚拟内存空间。该方式灵活、安全,适用于大多数现代Linux发行版。
1、使用dd命令创建大小为2GB的Swap文件:sudo dd if=/dev/zero of=/swapfile bs=1G count=2
2、设置Swap文件权限为仅root可读写:sudo chmod 600 /swapfile
3、将文件格式化为Swap类型:sudo mkswap /swapfile
4、启用该Swap文件:sudo swapon /swapfile
5、验证是否启用成功:sudo swapon --show
二、通过独立Swap分区启用
若系统安装时已预留未格式化的磁盘分区,或可重新规划磁盘空间,则使用独立分区作为Swap更稳定高效,避免文件系统层开销及碎片影响。
1、使用fdisk或parted确认目标分区(例如/dev/sdb2),确保其未挂载且无重要数据
2、将该分区设置为Linux swap类型:sudo fdisk /dev/sdb,输入t切换分区类型,输入82(Linux swap)
3、通知内核重读分区表:sudo partprobe /dev/sdb
4、格式化为Swap:sudo mkswap /dev/sdb2
5、启用该分区:sudo swapon /dev/sdb2
三、配置开机自动挂载Swap
为确保系统重启后Swap持续生效,需将Swap设备信息写入/etc/fstab文件。遗漏此步骤将导致每次重启后Swap失效。
1、获取Swap文件或分区的UUID(推荐):sudo blkid /swapfile 或 sudo blkid /dev/sdb2
2、编辑fstab文件:sudo nano /etc/fstab
3、在文件末尾添加对应行,例如使用UUID方式:UUID=xxxx-xxxx-xxxx-xxxx none swap sw 0 0
4、保存退出后,执行sudo swapon -a验证fstab语法及挂载有效性
四、调整Swappiness参数优化性能
swappiness值控制内核将匿名页交换到Swap的积极程度,默认为60;数值越低,内核越倾向于保留页面在物理内存中,适合内存充足的服务器环境。
1、查看当前swappiness值:cat /proc/sys/vm/swappiness
2、临时修改为10(推荐内存≥8GB的系统):sudo sysctl vm.swappiness=10
3、永久生效需写入sysctl.conf:echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
4、重新加载配置:sudo sysctl -p
五、禁用并安全移除Swap设备
当不再需要Swap或需更换Swap位置时,必须先停用再删除,否则可能引发I/O错误或系统不稳定。
1、停用指定Swap文件或分区:sudo swapoff /swapfile 或 sudo swapoff /dev/sdb2
2、确认已完全关闭:sudo swapon --show(输出应为空)
3、如为Swap文件,执行删除:sudo rm /swapfile
4、如为Swap分区,从/etc/fstab中移除对应行,并可选择重新分配该分区用途











