linux系统因内存不足卡顿时,可通过增加swap缓解:先用free -m检查状态;再用dd创建swapfile或fdisk新建分区并mkswap;启用后写入fstab实现开机自动挂载;最后可swapoff清理旧资源。

如果您的Linux系统因物理内存不足频繁卡顿、响应迟缓甚至死机,很可能是缺少或Swap空间过小,无法为内存压力提供缓冲。以下是增加Swap分区的具体操作步骤:
一、检查当前Swap状态
在执行任何变更前,需确认系统当前是否已启用Swap及可用容量。该步骤用于判断是否需要新增,以及评估新增规模。
1、打开终端,以root权限执行命令:free -m
2、观察输出中“Swap”行的“total”值:若为0,则表示未启用Swap;若数值远小于物理内存(如物理内存8G而Swap仅512M),则建议扩容。
3、补充验证命令(可选):swapon -s 或 cat /proc/swaps,确认当前激活的Swap设备或文件路径。
二、使用swapfile方式动态增加Swap空间
该方法无需重启、不依赖磁盘分区结构,适用于绝大多数现代Linux发行版,灵活性高且风险低。
1、选择一个有足够空闲空间的挂载点(如/var、/opt或根目录),执行dd命令创建空文件:dd if=/dev/zero of=/var/swapfile bs=1M count=4096(此例创建4GB Swap文件)
2、严格设置文件权限,防止安全警告或启用失败:chmod 600 /var/swapfile
3、将该文件格式化为Swap文件系统:mkswap /var/swapfile
4、立即启用该Swap文件:swapon /var/swapfile
5、再次运行 free -m,确认“Swap”行“total”值已更新为预期大小。
三、使用独立分区方式永久扩展Swap
该方法通过分配一块未使用的磁盘分区作为专用Swap区域,性能略优于文件方式,适合对I/O稳定性要求较高的生产环境。
1、使用fdisk或parted工具在空闲磁盘上创建新分区(例如/dev/sdb2),并将分区类型设为82(Linux swap)
2、执行格式化命令:mkswap /dev/sdb2
3、启用该分区:swapon /dev/sdb2
4、验证生效:swapon -s 应显示该设备路径及大小
5、如需持久化,须将条目写入/etc/fstab:/dev/sdb2 swap swap defaults 0 0
四、配置开机自动挂载Swap
无论采用swapfile还是分区方式,若未配置自动挂载,系统重启后Swap将失效,内存压力问题会重现。
1、编辑fstab文件:vi /etc/fstab
2、在文件末尾新增一行(根据实际路径替换):/var/swapfile swap swap defaults 0 0
3、保存退出后,执行命令验证语法正确性:mount -a(无报错即通过)
4、重启前可手动测试加载:swapon -a,再用free -m确认已启用
五、关闭并清理旧Swap资源
当新增Swap已稳定运行,且原Swap文件或分区不再需要时,应安全停用并移除,避免冗余占用与潜在冲突。
1、停用指定Swap资源:swapoff /var/swapfile 或 swapoff /dev/sdb2
2、从/etc/fstab中删除对应行,防止开机重复挂载失败
3、彻底删除Swap文件(仅限文件方式):rm -f /var/swapfile
4、如为分区方式且确认不再使用,可用fdisk删除该分区并刷新分区表











