应仅在物理内存长期充足且 swap 长期闲置时安全关闭并删除 swap,操作顺序为先确认内存余量、再释放、最后清理配置,以防 oom 或服务中断。

安全关闭并删除不需要的 Swap 空间,关键在于“先确认内存余量、再释放、最后清理配置”,避免因误操作引发 OOM 或服务中断。不是所有 Swap 都该删——只在物理内存长期充足、Swap 长期闲置(比如
一、确认当前 Swap 使用状态和内存余量
执行以下命令,观察真实负载:
-
free -h:重点看 Swap 行的 used 值 和 Mem 行的 available 值。若
available > used(比如可用内存 3.2G,Swap 已用 800M),说明有足够空间承接换回的数据。 -
swapon --show:列出所有启用的 Swap 设备或文件,记下路径(如
/dev/sda2或/swapfile)。 - cat /proc/swaps:查看每项的 priority 和 type,确认是否为分区或文件,便于后续精准操作。
二、安全关闭 Swap(不触发 OOM)
关闭前必须确保内核能顺利把 Swap 中的数据换回 RAM。不要直接 swapoff -a 冒险操作:
- 如果只有一块 Swap(例如
/swapfile),运行:sudo swapoff /swapfile - 如果有多块且确认内存足够,再用:
sudo swapoff -a - 执行后立即验证:
swapon --show应无输出;free -h中 Swap total 显示为0B。
三、彻底删除 Swap(分区 or 文件)
分两种情况处理,不可跳过配置清理步骤:
-
删除 Swap 文件(最常见):
①sudo rm /swapfile(路径以swapon --show输出为准)
② 编辑/etc/fstab:
sudo nano /etc/fstab,找到含swap的行,整行前加#注释掉,保存退出。 -
删除 Swap 分区(需额外清理 LVM 或 GRUB):
① 关闭后,用lsblk或blkid确认分区名(如/dev/sdb1)
② 注释或删除/etc/fstab中对应行
③ 若使用 LVM,还需更新 initramfs 和 GRUB(如龙蜥/Anolis 系统需修改/etc/default/grub中resume=参数,并重生成 grub.cfg)
四、验证与可选加固
重启不是必须的,但推荐做一次最终确认:
- 重启后运行
free -h和swapon --show,确保 Swap 完全消失。 - 如想防止系统未来自动启用 Swap(即使 fstab 残留),可临时禁用内核换页倾向:
sudo sysctl vm.swappiness=0(仅当前生效)
或永久写入:echo 'vm.swappiness=0' | sudo tee -a /etc/sysctl.conf - 注意:数据库服务器、低内存云主机(≤2GB)等场景,完全禁用 Swap 可能增加 OOM 风险,建议保留小容量 Swap(如 512MB)并调低 swappiness。











