彻底禁用swap需两步:先执行sudo swapoff -a临时关闭(立即生效但重启恢复),再编辑/etc/fstab注释掉swap行实现永久禁用;跳过任一步,重启后swap将自动启用。

能彻底禁用 Swap,但必须分两步:先临时关掉,再永久移除挂载配置。跳过任何一步,重启后 Swap 都会自动回来。
怎么确认 Swap 正在被使用
别直接执行 swapoff -a,先看它是不是真在干活:
-
free -h:重点看Swap行的used值,不是 0 就说明有数据正躺在磁盘上 -
swapon --show:列出所有启用的 swap 设备或文件,比如/dev/dm-1或/swapfile -
cat /proc/swaps:和swapon --show输出一致,但更原始,适合脚本判断
如果 used 不为 0,强行 swapoff 可能失败,报错 Cannot allocate memory —— 这时得先腾出物理内存,或重启后再操作。
临时关闭:立即生效但不持久
运行这条命令就能立刻停用所有 swap:
sudo swapoff -a
它会读取 /proc/swaps,把每个条目都执行一次 swapoff。注意:
- 没输出 = 成功;有报错 = 某个设备关不掉(常见于正在使用的 swap 文件)
- 关完马上用
free -h验证,Swap行应全为0B - 这个操作不改任何配置文件,重启后自动恢复
永久关闭:改 /etc/fstab 才算真正禁用
系统启动时靠 /etc/fstab 自动挂载 swap,所以必须删掉或注释对应行:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 用
grep swap /etc/fstab快速定位,典型行类似:/swapfile none swap sw 0 0或UUID=xxx none swap sw 0 0 - 用
sudo nano /etc/fstab或sudo vim /etc/fstab编辑,在该行开头加#注释掉 - 保存后建议执行
sudo mount -a测试语法是否正确(无输出即通过)
注意:有些系统(如 CentOS 7/8)还依赖 systemctl daemon-reload 刷新 fstab 缓存,但多数现代发行版不需要;保险起见可执行一次,不影响结果。
额外清理:删 swap 文件 or 释放 LVM 空间
如果用的是 /swapfile,注释 fstab 后可以顺手删掉它来腾空间:
sudo swapoff /swapfile && sudo rm -f /swapfile
如果是 LVM swap 分区(如 /dev/mapper/centos-swap),要彻底清理需多几步:
sudo swapoff /dev/mapper/centos-swap-
sudo lvremove /dev/mapper/centos-swap(输入y确认) sudo lvextend -l +100%FREE /dev/mapper/centos-root-
sudo xfs_growfs /dev/mapper/centos-root(XFS 文件系统)或sudo resize2fs /dev/mapper/centos-root(ext4)
这步容易被跳过,导致虽然 swap 不用了,但那块磁盘空间仍被逻辑卷占着,白白浪费。
最后提醒一句:禁用 Swap 后,vm.swappiness 设为 0 并不能替代真实关闭 —— 它只是降低换页倾向,只要 fstab 里还有 swap 配置,系统启动时照样挂载。真正“彻底”,只取决于 swapoff -a + /etc/fstab 里没有活跃配置这两件事。










