温馨提示×

debian swapper为何失效

小樊
37
2026-10-07 07:04:02
栏目: 智能运维

在 Debian 系统中,swapper(交换空间 / swap)失效通常指系统无法使用 swap(swap 分区或 swap 文件),或者设置了但没有生效。下面按常见原因和排查方式系统说明。


一、先确认 swap 是否真的“失效”

swapon --show
free -h
cat /proc/swaps
  • 没有输出 / 大小为 0 → swap 未启用
  • 有输出但不可用 → 可能是优先级、配置或内核限制问题

二、最常见原因及解决方法

1️⃣ swap 未在 /etc/fstab 中启用(重启后失效)

现象

  • 手动 swapon 可以用
  • 重启后 swap 消失

检查

cat /etc/fstab

修复(分区)

UUID=xxxx none swap sw 0 0

修复(文件)

/swapfile none swap sw 0 0

然后:

mount -a
swapon -a

2️⃣ swap 文件创建方式错误(尤其 Btrfs / 新内核)

错误做法

dd if=/dev/zero of=/swapfile bs=1M count=2048

在 Btrfs 或某些文件系统上会失败。

正确方式(ext4)

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

Btrfs 必须

touch /swapfile
chattr +C /swapfile
fallocate -l 2G /swapfile
mkswap /swapfile
swapon /swapfile

3️⃣ swappiness 被设为 0(看似“失效”)

cat /proc/sys/vm/swappiness

如果是 0,系统几乎不用 swap。

临时

sysctl vm.swappiness=60

永久

echo 'vm.swappiness=60' >> /etc/sysctl.conf

4️⃣ swap 分区损坏或 UUID 变化

blkid

如果 UUID 和 /etc/fstab 不一致:

swapon UUID=新UUID

5️⃣ 使用了 zRAM(常见于桌面 / 云镜像)

Debian 桌面版可能用 zram 替代 swap:

ls /dev/zram*
zramctl

此时传统 swap 可能“看起来没用”。

关闭 zram:

systemctl disable zram-generator

6️⃣ 内核或容器限制(LXC / Docker)

在容器中:

  • swap 通常 无法启用
  • /proc/swaps 为空是正常现象

7️⃣ 休眠(hibernate)相关失败

如果 swap 小于 RAM:

  • 无法休眠
  • 系统可能提示 swap 不可用
free -h
swapon --show

三、快速排错清单 ✅

swapon --show
free -h
cat /etc/fstab
cat /proc/sys/vm/swappiness
lsblk
blkid

四、如果你愿意,我可以更精确帮你

你可以贴出:

  • swapon --show
  • free -h
  • /etc/fstab
  • Debian 版本(cat /etc/debian_version)

我可以直接告诉你 为什么失效 + 怎么修。

0 踩