温馨提示×

ubuntu swap崩溃咋解决

小樊
39
2026-10-21 19:03:21
栏目: 智能运维

“Ubuntu swap 崩溃”通常指以下几种情况之一:

  1. 系统卡死 / OOM(内存耗尽)后使用了 swap 但仍崩溃
  2. swap 分区或 swap 文件损坏,导致系统无法休眠或启动异常
  3. swap 开启后性能极差,看起来像“崩溃”
  4. 启用 swap 后内核 panic / 无法开机

下面按常见场景 + 解决方案来说明。


一、确认当前 swap 状态

swapon --show
free -h

如果没有 swap,或 swap 损坏,会出现异常。


二、swap 文件/分区损坏导致问题(最常见)

1. 关闭有问题的 swap

sudo swapoff -a

2. 如果是 swap 文件(推荐方式)

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

3. 如果是 swap 分区

sudo swapoff /dev/sdXn
sudo mkswap /dev/sdXn
sudo swapon /dev/sdXn

⚠️ 请确认分区不是系统盘或数据盘


三、系统频繁崩溃 / OOM(不是 swap 本身问题)

查看是不是内存爆了

dmesg | grep -i "out of memory"
journalctl -xe

解决思路

  • 增加 swap(至少 = 内存大小)
  • 限制进程内存
  • 找出内存泄漏程序
top
htop

四、休眠(hibernate)导致“swap 崩溃”

Ubuntu 休眠要求:

  • swap ≥ 内存
  • 且内核参数正确

检查:

cat /etc/fstab

确保有:

/swapfile none swap sw 0 0

并确认:

sudo update-initramfs -u

五、swap 导致系统极慢(像死机)

这是正常现象,不是 bug:

  • swap 在 HDD 上 → 非常慢
  • 解决:
    • 用 SSD
    • 或减小 swappiness
cat /proc/sys/vm/swappiness

改为 10:

sudo sysctl vm.swappiness=10

永久:

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

六、极端情况:swap 导致无法启动

进入 Live USB → 挂载系统盘 → 注释 /etc/fstab 中的 swap 行。


七、快速自检清单 ✅

  • [ ] swap 存在且正常
  • [ ] 不是内存泄漏
  • [ ] swappiness 合理
  • [ ] 休眠配置正确
  • [ ] 磁盘健康(SMART)

如果你能补充:

  • Ubuntu 版本
  • 是开机崩溃 / 运行中卡死 / 休眠失败
  • 是否有 dmesg 报错

我可以给你更精确的修复命令。

0 踩