Ubuntu Swapper故障排除常見方法
首先確認Swap分區是否啟用及使用情況,這是排查故障的基礎步驟。使用以下命令查看當前激活的Swap分區:
sudo swapon --show
若未顯示任何Swap分區,說明未啟用。進一步通過free -h命令查看Swap使用量(以人類可讀格式顯示),或檢查/proc/swaps文件獲取詳細信息。這些命令能快速定位Swap是否正常工作。
Swappiness值(默認60)決定了系統使用Swap分區的傾向,數值越高,系統越易將內存數據轉移至Swap,可能導致性能下降。
cat /proc/sys/vm/swappinesssudo 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 -afdisk或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相關行(在行首添加#),保存后重啟系統。