在 Linux 系統中關閉 swap 分區(或交換文件)的步驟如下,請務必在操作前保存所有數據,以免丟失:
📌 完整操作步驟:
1. 查看當前 swap 使用情況
free -h
swapon --show # 查看活躍的 swap 設備
示例輸出:
NAME TYPE SIZE USED PRIO
/dev/sdb1 partition 2G 0B -2
2. 臨時關閉 swap
sudo swapoff -a # 關閉所有 swap 分區/文件(立即生效但重啟失效)
3. 永久關閉 swap
編輯 /etc/fstab
文件:
sudo vim /etc/fstab # 也可用 nano 或其他編輯器
-
找到 swap 相關行 ,在行首添加
注釋或直接刪除該行
示例(注釋前):
/dev/sdb1 none swap sw 0 0 # 或針對 swap 文件: /swapfile none swap sw 0 0
修改后:
#/dev/sdb1 none swap sw 0 0 # 已注釋禁用
🔍 提示:使用
grep swap /etc/fstab
快速定位 swap 配置。
4. 重啟系統驗證
sudo reboot
重啟后檢查:
free -h # Swap 應顯示 0
swapon --show # 無輸出即表示已關閉
?? 重要注意事項:
-
內存不足風險:
關閉 swap 后系統將無法使用磁盤空間緩解內存壓力,若物理內存耗盡會導致進程崩潰或系統鎖定。建議僅在以下情況操作:- 物理內存非常充足(如服務器的內存 > 總需求峰值)
- 特定優化場景(如數據庫服務器)
-
臨時啟用 swap:
若需臨時恢復 swap(不修改 fstab):sudo swapon -a # 重新啟用 /etc/fstab 中未注釋的 swap
-
刪除 swap 文件(可選):
如果使用 swap ??文件??且想徹底刪除:sudo swapoff /swapfile # 先關閉 sudo rm /swapfile # 刪除文件
-
調整內核參數(高級可選):
如需徹底禁止系統使用 swap(即使 fstab 存在配置):echo "vm.swappiness=0" | sudo tee -a /etc/sysctl.conf # 禁止傾向使用 swap sudo sysctl -p # 立即生效
💡 常見問題解決:
swapoff
卡住:通常因 swap 使用率較高引起,嘗試:- 提前清理內存占用(結束非關鍵進程)
- 增量關閉:
sudo swapoff /dev/sdb1
(指定具體設備) - 耐心等待(系統需將 swap 數據移回內存)
- 重啟后 swap 仍存在:
檢查是否還有其他 swap 項在/etc/fstab
中未被注釋,或存在 systemd 的 swap 單元(通過systemctl list-unit-files | grep swap
檢查)。
通過以上步驟,您已安全關閉 Linux 系統的 swap 分區。?