Ubuntu中清理不必要交換文件的步驟
首先確認系統中啟用的交換空間(包括交換文件或分區)及其使用狀態,常用命令如下:
sudo swapon --show
:顯示詳細交換空間信息(名稱、大小、類型等);free -h
:以人類可讀格式(GB/MB)展示內存與交換空間的使用率。若需清理的交換空間為文件(如常見的/swapfile
),需先停止其使用,避免數據損壞:
sudo swapoff -v /swapfile
命令中的-v
參數會顯示操作詳情(如“正在關閉交換文件”)。若系統有多個交換文件/分區,需逐一關閉。
關閉后,通過rm
命令徹底刪除物理文件:
sudo rm /swapfile
注意:此操作不可逆,請確認文件路徑正確(可通過ls -lh /swapfile
再次核對)。
為防止系統重啟后自動重新啟用已刪除的交換文件,需編輯/etc/fstab
文件:
sudo nano /etc/fstab
找到類似以下內容的行(路徑需與目標交換文件一致):
/swapfile swap swap defaults 0 0
刪除該行或在其前添加#
注釋,保存后退出(Ctrl+O
→Enter
→Ctrl+X
)。
若仍需交換空間,可重新創建并配置:
sudo fallocate -l 4G /swapfile # 創建4GB交換文件(可根據內存大小調整,如8G內存建議4G交換)
sudo chmod 600 /swapfile # 設置嚴格權限(僅root可讀寫)
sudo mkswap /swapfile # 格式化為交換空間
sudo swapon /swapfile # 啟用交換文件
sudo swapon --show # 驗證啟用狀態
完成后,建議再次編輯/etc/fstab
添加對應條目,確保重啟后自動啟用。
sudo swapoff -a && sudo rm /swapfile && sudo sed -i '/swapfile/d' /etc/fstab
vm.swappiness
參數(降低系統使用交換空間的頻率,如設置為10
):sudo sysctl vm.swappiness=10 # 臨時生效
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf # 永久生效