Ubuntu Swapper故障排除常见方法
首先确认Swap分区是否启用及使用情况,这是排查故障的基础步骤。使用以下命令查看当前激活的Swap分区:
sudo swapon --show
若未显示任何Swap分区,说明未启用。进一步通过free -h
命令查看Swap使用量(以人类可读格式显示),或检查/proc/swaps
文件获取详细信息。这些命令能快速定位Swap是否正常工作。
Swappiness值(默认60)决定了系统使用Swap分区的倾向,数值越高,系统越易将内存数据转移至Swap,可能导致性能下降。
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10
(建议设为10-30,减少Swap依赖)/etc/sysctl.conf
文件,添加vm.swappiness=10
,保存后执行sudo sysctl -p
使更改生效。确保/etc/fstab
文件中包含正确的Swap分区配置,否则系统重启后可能无法自动挂载Swap。打开文件:
sudo nano /etc/fstab
检查是否存在类似条目(/dev/sdXY
替换为实际Swap分区设备名,可通过blkid
命令获取UUID):
UUID=xxxx none swap sw 0 0
若缺失或错误,添加/修改后保存,再执行sudo swapon -a
重新挂载所有Swap分区。
top
(实时进程监控)或htop
(增强版界面)查看内存占用,若内存充足但Swap使用率高,可能是Swappiness设置过高。df -h
命令检查Swap分区所在磁盘的可用空间,若空间不足(如小于10%),Swap性能会急剧下降,需清理磁盘或扩容。系统日志能提供Swap故障的具体线索,如内核错误、挂载失败等。常用命令:
journalctl -xe
:查看近期系统日志(按时间排序,重点关注“swap”“error”关键词)。grep -i swap /var/log/syslog
:过滤syslog
中的Swap相关日志,获取历史错误信息。若Swap分区损坏,需重新创建:
sudo swapoff -a
fdisk
或GParted
工具删除Swap分区(如/dev/sda3
)。fdisk /dev/sdX
(sdX
为磁盘设备)创建新分区,设置类型为“82(Linux swap)”。sudo mkswap /dev/sdXY
(sdXY
为新分区设备名)。sudo swapon /dev/sdXY
/etc/fstab
,替换旧分区信息为新分区。free -h --si
确认物理内存是否充足,若内存不足,Swap使用率必然升高,需升级内存。sudo smartctl -a /dev/sdX
(需安装smartmontools
)检查磁盘SMART状态,查看是否有坏道或其他硬件问题。若系统无需Swap(如物理内存充足且无需休眠功能),可临时关闭:
sudo swapoff -a
永久关闭则需编辑/etc/fstab
,注释掉Swap相关行(在行首添加#
),保存后重启系统。