诊断CentOS Swapper问题可按以下步骤进行:
-
检查Swap使用情况
- 使用
free -h查看Swap占用是否异常高。 - 通过
vmstat或top监控实时Swap读写(si/so字段)及进程占用情况。
- 使用
-
调整Swappiness参数
- 临时调整:
sysctl vm.swappiness=10(数值越低,越少使用Swap)。 - 永久调整:修改
/etc/sysctl.conf并执行sysctl -p。
- 临时调整:
-
排查进程占用
- 通过
for i in $(ls /proc | grep "^[0-9]"); do awk '/Swap:/{a=a+$2}END{print $i,a/1024"M"}' /proc/$i/smaps 2>/dev/null; done | sort -k2nr | head找出占用Swap最多的进程。
- 通过
-
检查系统日志与配置文件
- 使用
journalctl -b -1或dmesg | grep -i panic查看与Swap相关的错误日志。 - 确认
/etc/fstab中Swap分区配置正确(如/dev/sda2 none swap sw 0 0)。
- 使用
-
更新系统与硬件检查
- 执行
sudo yum update更新系统和驱动。 - 若怀疑硬件故障,用
memtest86+测试内存,fsck检查磁盘。
- 执行
-
进入单用户模式(系统无法启动时)
- CentOS 7:在GRUB中编辑内核行,添加
init=/bin/bash进入救援模式。
- CentOS 7:在GRUB中编辑内核行,添加
-
禁用可疑内核模块
- 若问题与特定模块相关,使用
sudo modprobe -r module_name禁用后重启。
- 若问题与特定模块相关,使用
若以上步骤无效,建议提供日志详情或寻求专业支持。