Ubuntu Swap優化方法
Swap文件是Ubuntu中最常用的交換空間形式,可根據物理內存大小調整其容量。
fallocate
命令快速創建指定大小的Swap文件(如4GB),若fallocate
不可用,可用dd
命令替代。sudo fallocate -l 4G /swapfile # 創建4GB Swap文件
sudo chmod 600 /swapfile # 設置嚴格權限(僅root可訪問)
sudo mkswap /swapfile # 格式化為Swap格式
sudo swapon /swapfile # 啟用Swap文件
/etc/fstab
文件,確保系統重啟后自動加載。echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo swapoff /swapfile # 禁用Swap文件
sudo fallocate -l 8G /swapfile # 調整為8GB(示例)
sudo mkswap /swapfile # 重新格式化
sudo swapon /swapfile # 重新啟用
Swappiness是控制內核使用Swap頻率的關鍵參數(取值0-100),值越低,系統越傾向于使用物理內存,減少Swap依賴。
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10 # 推薦值:10-30(內存充足時可設為10以下)
/etc/sysctl.conf
文件,添加以下行:vm.swappiness=10
執行sudo sysctl -p
使修改生效。Swap的性能高度依賴存儲介質的讀寫速度,優先將Swap文件放在SSD上(尤其是NVMe SSD),可顯著提升Swap操作速度。若系統已有SSD,確保Swap文件位于SSD分區(如/
根目錄或/home
目錄下的Swap文件)。
定期監控Swap使用狀態,判斷優化效果及是否需要進一步調整:
free -h
sudo swapon --show
sudo top # 或 htop(需安裝)
若系統物理內存充足(如16GB以上)且Swap使用率長期低于10%,可考慮刪除Swap文件以釋放磁盤空間:
sudo swapoff /swapfile
sudo rm /swapfile
/etc/fstab
,刪除或注釋掉Swap文件對應的行。zram(壓縮內存)和zswap(壓縮Swap)可在內存中創建虛擬Swap空間,減少對磁盤的訪問,適合內存緊張但需提升Swap性能的場景:
sudo apt install zram-config
/etc/default/grub
,在GRUB_CMDLINE_LINUX_DEFAULT
中添加zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20
(壓縮算法選lz4,池大小設為內存的20%),然后更新GRUB并重啟:sudo update-grub
sudo reboot
/etc/fstab
等關鍵文件,防止誤操作導致系統無法啟動。