Debian Swap故障排查指南
首先确认Swap是否启用及使用情况,使用以下命令:
swapon --show:显示当前启用的Swap分区/文件(若无输出,说明未启用)。free -h:查看内存与Swap的总使用量(重点关注“Swap”列的“已用”值)。swapon --showfree -h:更直观地展示Swap剩余空间(需Debian 11及以上版本)。若Swap未在系统重启后自动启用,需检查/etc/fstab文件中的配置是否正确。常见格式有两种:
/dev/sdXY none swap sw 0 0(sdXY为Swap分区设备名,如/dev/sda2)。/swapfile none swap sw 0 0(/swapfile为Swap文件路径)。sudo mount -a测试配置是否合法。通过日志定位Swap故障的具体原因,常用命令:
journalctl -xe:查看实时系统日志(过滤“swap”关键词可缩小范围,如journalctl -xe | grep -i swap)。grep -i swap /var/log/syslog:从syslog中提取Swap相关错误(如“Failed to activate swap”)。若Swap基于LVM逻辑卷,需确保卷组和逻辑卷状态正常:
sudo lvdisplay:查看逻辑卷是否处于“active”状态(若为“inactive”,需激活)。sudo vgchange -ay:激活卷组(若卷组未激活,逻辑卷无法使用)。sudo swapon /dev/mapper/vg_name-lv_swap(替换为实际路径)。若Swap分区损坏或Swap文件丢失,需重新创建:
sudo swapoff -a(临时关闭所有Swap)。sudo fallocate -l 2G /swapfile # 创建2G Swap文件(若fallocate不可用,用dd:sudo dd if=/dev/zero of=/swapfile bs=1G count=2)
sudo chmod 600 /swapfile # 设置严格权限(防止误操作)
sudo mkswap /swapfile # 格式化为Swap空间
sudo swapon /swapfile # 启用Swap
fdisk /dev/sdX创建分区→mkswap /dev/sdXY格式化→swapon /dev/sdXY启用。Swappiness控制系统使用Swap的频率(取值0-100,默认60):
cat /proc/sys/vm/swappiness。sudo sysctl vm.swappiness=10(值越低,越倾向于使用物理内存)。/etc/sysctl.conf,添加vm.swappiness=10,然后执行sudo sysctl -p使配置生效。top或htop查看内存占用高的进程(按“M”排序),必要时终止异常进程(sudo kill -9 PID)。