1. 检查Swap分区/文件状态
首先确认Swap空间是否启用及使用情况,这是诊断的基础步骤。常用命令:
sudo swapon --show:显示当前启用的Swap分区/文件(包括设备名、类型、大小、已用空间、优先级);free -h:以人类可读格式(GB/MB)展示内存与Swap的使用情况(重点关注“Swap”行的“Used”值);/proc/swaps:通过cat /proc/swaps查看Swap分区的详细信息(与swapon --show结果一致);vmstat -s | grep swap:统计Swap的总大小、已用空间、空闲空间(适合快速查看数值)。2. 监控Swap使用动态
实时跟踪Swap的变化趋势,判断是否存在异常使用:
top/htop:在“Swap”行查看实时使用量(top需按Shift+S切换到Swap标签;htop可直接查看Mem/Swap标签页);vmstat 1 5:每1秒刷新一次,共显示5次,重点关注“si”(从磁盘交换到内存的数据量)、“so”(从内存交换到磁盘的数据量)列——若这两个值持续较高,说明Swap使用频繁。3. 查看系统日志定位故障
通过日志分析Swap相关的错误或警告信息:
journalctl -xe:查看近期系统日志(按时间倒序排列),过滤“swap”关键词可快速定位Swap故障(如无法启用、磁盘空间不足等);/var/log/syslog:使用grep -i swap /var/log/syslog筛选Swap相关日志(适合长期日志分析)。4. 检查Swappiness参数设置
Swappiness控制内核使用Swap的倾向(默认值60,范围0-100):
cat /proc/sys/vm/swappiness:查看当前值(若为100,系统会积极使用Swap,可能导致性能下降;若为0,系统会尽量避免使用Swap,仅在内存耗尽时启用);sudo sysctl vm.swappiness=10,立即生效)、永久修改(编辑/etc/sysctl.conf,添加vm.swappiness=10,重启后生效)。5. 验证Swap分区挂载配置
确保Swap分区/文件在系统启动时自动挂载:
blkid:查看Swap分区的UUID(如/dev/sda2: UUID="xxxx-xxxx" TYPE="swap");/etc/fstab:添加Swap挂载行(格式为UUID=xxxx none swap sw 0 0,替换为实际的UUID);若使用Swap文件,则添加/swapfile none swap sw 0 0(/swapfile为文件路径)。6. 测试Swap功能是否正常
手动启用/禁用Swap,验证其是否能正常工作:
sudo swapoff -a(关闭所有Swap分区/文件);sudo swapon -a(启用/etc/fstab中配置的所有Swap);sudo swapoff /dev/sdXY(卸载Swap),再用sudo mkswap /dev/sdXY重新格式化,最后sudo swapon /dev/sdXY启用。7. 排查硬件资源问题
Swap问题有时与硬件资源不足相关:
free -h查看内存使用量(若内存充足但Swap使用率高,可能是Swappiness设置过高);df -h查看Swap所在磁盘的剩余空间(若磁盘空间不足,Swap无法正常使用)。