1. 檢查Swap當前狀態
首先確認Swap是否啟用及使用情況,使用以下命令:
swapon --show
:列出當前啟用的Swap分區/文件;free -h
:以人類可讀格式顯示內存與Swap使用量;swapon --showfree -h
:額外展示Swap剩余空間(部分Debian版本支持)。2. 驗證/etc/fstab配置
/etc/fstab文件負責系統啟動時自動掛載Swap。使用文本編輯器(如nano
)打開文件:
sudo nano /etc/fstab
檢查是否存在類似條目(根據實際情況調整設備名或路徑):
/dev/sdXY none swap sw 0 0 # 分區Swap
/swapfile none swap sw 0 0 # 文件Swap
若條目缺失、路徑錯誤或權限設置不當(如未用sw
選項),系統無法自動啟用Swap。
3. 檢查系統日志定位故障
通過日志獲取Swap故障的詳細原因,常用命令:
sudo journalctl -xe | grep -i swap # 查看實時日志中的Swap相關錯誤
sudo grep -i swap /var/log/syslog # 檢索歷史日志中的Swap記錄
日志中可能提示“Swap partition not found”“Permission denied”(權限問題)或“UUID mismatch”(設備UUID變更)等信息。
4. 重新創建Swap分區/文件
若Swap分區損壞或文件丟失,需重新創建:
sudo swapoff -a # 臨時禁用所有Swap
sudo rm /swapfile # 刪除Swap文件(若使用文件)
sudo fallocate -l 2G /swapfile # 創建2GB Swap文件(若fallocate不可用,用dd命令:sudo dd if=/dev/zero of=/swapfile bs=1G count=2)
sudo chmod 600 /swapfile # 設置嚴格權限(僅root可讀寫)
sudo mkswap /swapfile # 格式化為Swap空間
sudo swapon /swapfile # 啟用Swap
/swapfile none swap sw 0 0
添加到/etc/fstab
末尾。5. 調整Swappiness參數
Swappiness控制系統使用Swap的傾向(范圍0-100,默認60)。值越高,系統越易使用Swap;值越低,越傾向于使用物理內存。
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=30 # 例如設置為30,降低Swap使用頻率
/etc/sysctl.conf
,添加或修改:vm.swappiness=30
應用更改:sudo sysctl -p
注:若內存充足(如16GB以上),可將Swappiness設為10或更低,減少Swap對性能的影響。6. 處理LVM邏輯卷問題(若使用LVM)
若Swap基于LVM邏輯卷,需確保卷組和邏輯卷狀態正常:
sudo vgdisplay
sudo vgchange -ay
sudo lvdisplay
sudo lvextend -L +1G /dev/vgname/lvname # 增加1GB空間
sudo resize2fs /dev/vgname/lvname # 調整文件系統大?。ㄈ羰褂胑xt4)
然后重新創建Swap并啟用。7. 其他常見問題排查
free -h
確認內存剩余量(如可用內存大于1GB,Swap使用率低無需擔心)。top
或htop
查看進程內存使用情況,確認是否有異常進程。