1. 检查Swap状态与配置
首先确认Swap是否启用及配置是否正确。使用swapon --show查看当前启用的Swap分区/文件,若未显示则说明未启用;用free -h查看内存与Swap使用总量,判断Swap是否被使用及剩余空间是否充足;检查/etc/fstab文件中的Swap条目(如/dev/sdXY none swap sw 0 0或/swapfile none swap sw 0 0),确保设备名、UUID或路径正确,避免系统重启后无法自动挂载。
2. 查看系统日志定位错误
通过日志获取Swap故障的详细原因。使用journalctl -xe | grep -i swap过滤Swap相关错误信息(如“Failed to activate swap”、“Swap partition not found”);或查看/var/log/syslog文件中的历史记录(grep -i swap /var/log/syslog),重点关注内核或系统服务报错(如磁盘读写错误、权限问题)。
3. 验证Swap分区/文件完整性
若Swap未启用或启用失败,需检查分区/文件状态:
fdisk -l查看Swap分区是否存在(如/dev/sda2),状态是否为“active”;若分区损坏,可使用fdisk或parted工具重新划分(注意:操作前备份数据)。/swapfile)、权限是否正确(chmod 600 /swapfile,仅root可读写);若文件损坏,需删除后重新创建(rm /swapfile,再用fallocate或dd生成新文件)。4. 重新创建Swap分区/文件
若Swap分区/文件损坏,可按以下步骤重建:
sudo swapoff -a(关闭所有Swap)。sudo fallocate -l 2G /swapfile(若fallocate不可用,用dd if=/dev/zero of=/swapfile bs=1G count=2);设置权限sudo chmod 600 /swapfile;格式化sudo mkswap /swapfile。sudo swapon /swapfile;编辑/etc/fstab,添加/swapfile none swap sw 0 0,确保重启后自动启用。5. 调整Swappiness参数优化使用
vm.swappiness参数控制内核使用Swap的倾向(默认60,范围0-100)。若系统频繁使用Swap(如内存充足但仍大量写入Swap),可降低该值:
sudo sysctl vm.swappiness=10(设为10,表示内存使用率达90%时才使用Swap)。/etc/sysctl.conf,添加vm.swappiness=10,然后运行sudo sysctl -p使更改生效。6. 检查LVM(若使用逻辑卷)
若Swap基于LVM逻辑卷,需确认卷组和逻辑卷状态:
sudo vgdisplay,确保卷组处于“active”状态。sudo lvdisplay,确认逻辑卷大小、路径正确(如/dev/vg0/swap)。sudo vgchange -ay激活,再启用Swap。7. 监控系统资源与进程
使用工具实时监控资源使用,定位内存瓶颈:
top/htop:查看内存占用最高的进程(按M键排序),若某进程占用内存过大,可考虑终止(kill -9 PID)或优化。vmstat 1:监控Swap I/O(si/so列,数值过高表示频繁交换)、CPU使用率(us/sy列),判断系统负载情况。