温馨提示×

ubuntu swap无效怎么办

小樊
35
2026-10-04 06:06:21
栏目: 智能运维

在 Ubuntu 中遇到 swap 无效(不生效 / 不自动挂载 / 不释放内存) 是很常见的问题。下面按「排查 → 解决」的思路一步步来。


一、先确认 swap 当前状态

swapon --show
free -h
  • 如果 swapon --show 为空,说明 swap 没启用
  • 如果 free -h 中 Swap 为 0,也是没生效

二、常见原因 & 解决办法

✅ 1. swap 分区/文件存在但没启用

查看是否有 swap 分区

lsblk

或

sudo blkid | grep swap

手动启用

如果是 swap 分区:

sudo swapon /dev/sdXn

如果是 swap 文件(如 /swapfile):

sudo swapon /swapfile

✅ 2. 开机不自动挂载(最常见)

检查 /etc/fstab

cat /etc/fstab

应有类似内容:

swap 分区

UUID=xxxx  none  swap  sw  0  0

swap 文件

/swapfile  none  swap  sw  0  0

如果没有,手动添加(用实际路径或 UUID)。


✅ 3. swap 文件权限不对

如果是 /swapfile:

sudo chmod 600 /swapfile
sudo chown root:root /swapfile

否则系统会拒绝启用。


✅ 4. swap 文件未创建

如果根本没有 swap:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

并加入 /etc/fstab。


✅ 5. swappiness 太低(有 swap 但不使用)

查看:

cat /proc/sys/vm/swappiness

默认一般是 60,如果是 0 或 1,几乎不用 swap。

临时修改:

sudo sysctl vm.swappiness=60

永久生效:

echo 'vm.swappiness=60' | sudo tee -a /etc/sysctl.conf

✅ 6. 使用了 zram / zswap(特殊情况)

有些 Ubuntu(尤其 22.04+)默认用 zram:

swapon --show

如果看到 /dev/zram0,说明用的是压缩内存 swap。

这是正常的,不需要传统 swap。


✅ 7. 磁盘满了导致 swap 文件无法启用

df -h

如果 / 满了,swap 文件无法创建或启用。


三、快速自检清单 ✅

  • [ ] swapon --show 有输出
  • [ ] /etc/fstab 配置正确
  • [ ] swap 文件权限是 600
  • [ ] swappiness 不为 0
  • [ ] 磁盘空间充足

四、如果你愿意,我可以:

  • 帮你 看具体报错
  • 判断你是 swap 分区 / swap 文件 / zram
  • 给你一条 适合你机器的完整配置命令

你可以直接把下面命令的输出贴给我:

swapon --show
free -h
cat /etc/fstab

0 踩