最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Ubuntu Swapper故障排查与解决方法
时间:2026-07-29 11:14:06 编辑:袖梨 来源:一聚教程网
Ubuntu Swapper故障排查与解决

一 快速判断与定位
- 辨别与“swapper”有关的现象:
- 加密Swap配置存在问题或解锁失败时,启动过程往往会反复要求输入加密交换分区密码,也可能停留在“a start job is running for dev-mapper-cryptswap1.device (no limit)”。
- 磁盘/存储发生异常或严重延迟,容易让I/O持续阻塞系统空闲线程;内核日志此时会记录“INFO: task swapper:1 blocked for more than 120 seconds”。
- Swap没有投入使用,而系统可用内存已降至极低水平,需考虑配置错误、策略过于保守或尚未启用。
- 快速检查清单:
- 查看是否启用Swap:
sudo swapon --show;未显示则未激活。 - 检查内存和Swap整体情况:
free -h;“available”接近0与否需要关注。 - 核查磁盘空间:
df -h;根分区或Swap所在分区不可缺少充足的剩余空间。 - 查看系统日志:
sudo journalctl -xe | grep -i swapper,或grep -i swap /var/log/syslog、dmesg | grep -i swapper,定位挂载失败、权限错误、设备不存在等具体原因。
- 查看是否启用Swap:
二 常见故障与修复步骤
- 启动阶段卡住并反复要求输入加密Swap密码
- 进入救援/单用户:重启,长按Shift进入GRUB,选择“Advanced options for Ubuntu”→“Recovery mode”→“Drop to root shell”。
- 若要临时绕过故障项,可编辑
/etc/fstab,把加密Swap相关行注释掉(如/dev/mapper/cryptswap1 none swap sw 0 0),保存以后执行reboot以便先让系统恢复可用。 - 重建加密Swap(示例为1G):
sudo swapoff -asudo fallocate -l 1G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfile- 在
/etc/fstab添加:/swapfile none swap sw 0 0 - 按发行版指引重新配置加密Swap(如
/etc/crypttab),然后再update-initramfs -u并对其进行更新/etc/fstab相应条目。
- Swap未启用或容量异常
- 启用指定分区:
sudo swapon /dev/sdXY;或启用全部:sudo swapon -a(依赖/etc/fstab正确)。 - 若分区损坏或不存在,重建:
sudo swapoff -a- 对分区:
sudo mkswap /dev/sdXY;对文件:sudo mkswap /swapfile sudo swapon /dev/sdXY或sudo swapon /swapfile
- 检查
/etc/fstab中的条目是否无误,包括设备路径或UUID;如有错误,修正后再swapon -a进行测试。
- 启用指定分区:
- “swapper blocked for more than 120 seconds”出现在内核日志中
- 应先检查底层I/O,包括存储离线或严重延迟、RAID异常、宿主机资源不足等情况;必要时检查阵列健康,并重启宿主机或存储。
- 仅在确认脏页回写是诱因时,可把脏页阈值调小作为临时缓解措施(示例值):
vm.dirty_background_ratio=5、vm.dirty_ratio=10,随后执行sysctl -p;在生产环境中需要谨慎评估。
- 系统可用内存已很低,Swap仍迟迟没有启用
- 可适度调低
vm.swappiness(默认60):先查看cat /proc/sys/vm/swappiness;临时设置sysctl vm.swappiness=10;永久设置则写入/etc/sysctl.conf:vm.swappiness=10。 - 内核保留空闲内存阈值可适度提高,在(示例250000 KB):
/etc/sysctl.conf中添加vm.min_free_kbytes=250000并重新启动,使Swap更早触发,避免内存紧张时出现卡顿。
- 可适度调低
三 验证与优化
- 确认修复效果:
swapon --show应当可以看到Swap设备或文件及其容量;free -h其中Swap“used”会随负载上升;journalctl -xe | grep -i swapper不再出现挂载失败或I/O阻塞错误。
- 优化性能和稳定性:
- 合理配置
vm.swappiness:内存<8GB建议10–30;内存>为减少不必要的Swap抖动,8GB建议≤10**。 - 适当设置
vm.min_free_kbytes(如250000),避免直到空闲内存极低时才触发Swap而引起卡顿。 - 保持系统与内核更新:
sudo apt update && sudo apt upgrade,必要时安装新版内核linux-generic,修复已知Swap/存储相关缺陷。
- 合理配置
四 应急与数据保护
- 无法进入系统时可采用以下应急路径:
- 先由Live USB启动并挂载原系统分区,重要数据完成备份后,再对文件系统进行检查和修复(
fsck,检查修复时不可挂载),完成后再修正并按上文重建Swap/etc/fstab。 - 若引导异常,可在Live环境中重装GRUB:
sudo grub-install /dev/sdX与sudo update-grub,然后重启。
- 先由Live USB启动并挂载原系统分区,重要数据完成备份后,再对文件系统进行检查和修复(
相关文章
- 提升工作效率与选择适用pdf实时翻译解决方案 07-29
- 改善PDF文件翻译效果与选择适用软件的关键策略 07-29
- 最佳免费翻译PDF的网站选择与在线文档工具使用方法 07-29
- 提高工作效率的5个技巧:pdf翻译在线免费与在线翻译工具 07-29
- pdf具备翻译功能吗?三大实用技巧帮助企业跨越语言障碍 07-29
- 失控进化地铁模式怎么玩 07-29