1. 調整Swap大小
合理設置Swap空間是基礎。一般建議Swap大小為物理內存的1.5-3倍(如4GB內存建議6-12GB),但需根據實際使用場景調整:若物理內存充足(如32GB以上),可適當減小Swap大小甚至禁用(需評估應用內存需求)。創建或擴展Swap時,推薦使用Swap文件(靈活性更高):通過fallocate命令創建(如sudo fallocate -l 4G /swapfile),設置權限為600(sudo chmod 600 /swapfile),格式化為Swap(sudo mkswap /swapfile),啟用(sudo swapon /swapfile),并添加到/etc/fstab實現開機自啟(添加/swapfile none swap sw 0 0行)。
2. 優化Swappiness參數
vm.swappiness是控制內核將內存數據換出到Swap的傾向參數,取值范圍0-100(0表示盡量不用Swap,100表示積極使用)。默認值通常為60,對于桌面或內存充足的服務器,建議降低至10-30(減少磁盤I/O,提升響應速度)。臨時修改用sysctl命令(sudo sysctl vm.swappiness=10),永久生效則編輯/etc/sysctl.conf文件(添加vm.swappiness=10),然后運行sudo sysctl -p使配置生效。
3. 使用高性能存儲介質
Swap的性能高度依賴存儲設備。優先將Swap放在SSD上(而非HDD),因為SSD的隨機讀寫速度遠高于HDD,能顯著減少Swap操作的延遲。若系統已有SSD,確保Swap文件或分區位于SSD設備上(如/dev/sda1而非/dev/sdb1)。
4. 利用zRAM/zswap減少磁盤IO
sudo apt update && sudo apt install zram-config,啟用后會自動創建zRAM設備并添加為Swap。/etc/default/grub,添加zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20,更新GRUB后重啟)。5. 使用多個Swap分區/文件均衡負載
多個Swap分區或文件可均衡磁盤I/O負載,提高交換效率。系統會以輪詢方式使用多個Swap空間,避免單一設備成為瓶頸。配置方法:創建多個Swap文件(如/swapfile1、/swapfile2),分別格式化、啟用并添加到/etc/fstab;或創建多個Swap分區(如/dev/sda2、/dev/sdb3),格式化后逐一啟用并添加到/etc/fstab。
6. 定期監控Swap使用情況
通過監控工具及時發現Swap異常(如頻繁換出),有助于提前優化。常用命令:
free -h:查看內存和Swap的總使用量及剩余量;swapon --show:查看當前啟用的Swap設備及使用率;top/htop:查看進程的內存和Swap占用情況(按Shift+M按內存排序,找出內存消耗大的進程)。7. 清理不必要的Swap文件/分區
定期檢查并移除不再使用的Swap文件或分區,釋放磁盤空間并減少系統管理開銷。操作步驟:
sudo swapoff /swapfile或sudo swapoff /dev/sdXN);/etc/fstab中移除對應條目;sudo rm /swapfile)或分區(使用gparted等工具刪除分區)。