1. 調整Swap空間大小
Swap空間的大小直接影響系統內存不足時的應對能力。一般建議為物理內存的1.5-3倍(如4GB內存建議6-12GB Swap);若內存較大(如16GB以上),可適當減小Swap大?。ㄈ?GB),避免過度占用硬盤空間。創建或擴展Swap文件的方法:使用sudo fallocate -l 4G /swapfile創建指定大小的Swap文件,通過sudo chmod 600 /swapfile設置權限(僅root可讀寫),用sudo mkswap /swapfile格式化為Swap空間,最后用sudo swapon /swapfile啟用,并添加到/etc/fstab文件(echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab)以實現開機自動加載。
2. 優化Swappiness內核參數
Swappiness(范圍0-100)控制內核將內存數據換出到Swap的傾向。默認值通常為60,數值越高,系統越傾向于使用Swap,可能導致頻繁磁盤I/O(尤其是機械硬盤)。建議將值設置為10-30(更傾向于使用物理內存),以提升系統響應速度。臨時調整用sudo sysctl vm.swappiness=10,永久生效則編輯/etc/sysctl.conf文件,添加vm.swappiness=10后運行sudo sysctl -p使更改生效。
3. 使用SSD作為Swap存儲
SSD的讀寫速度遠高于傳統機械硬盤(HDD),將Swap空間放在SSD上可顯著減少交換操作的延遲。若系統已有SSD,建議將Swap文件或分區創建在SSD上(如根分區位于SSD時,直接創建Swap文件即可)。
4. 啟用zram壓縮交換空間
zram是一種內核壓縮內存技術,它在內存中創建壓縮的塊設備作為Swap空間,無需額外硬盤空間,且能減少對物理硬盤的訪問。配置方法:安裝zram-config包(sudo apt update && sudo apt install zram-config),安裝后會自動啟用zram(默認分配內存的1/2作為壓縮Swap);可通過編輯/etc/default/zramswap文件調整壓縮算法(如ALGO=lz4,壓縮率更高)或Swap大小。
5. 監控Swap使用情況
定期監控Swap使用情況有助于及時發現問題并調整配置。常用命令:free -h(查看內存和Swap的總使用量及剩余量)、swapon --show(查看當前啟用的Swap文件/分區及其大小、使用率)、top/htop(實時查看進程的內存和Swap占用情況)。通過監控可判斷Swap是否過度使用(如Swap使用率長期超過50%),進而決定是否需要增加Swap大小或調整Swappiness。
6. 考慮使用多個Swap分區/文件
多個Swap分區或文件可均衡磁盤I/O負載,提高交換效率。例如,同時使用一個Swap文件和一個Swap分區,系統會以輪詢方式使用它們,減少單一磁盤的瓶頸。配置多個Swap文件的方法:重復創建Swap文件的步驟(如/swapfile1和/swapfile2),并將它們的路徑都添加到/etc/fstab文件中。
7. 定期維護Swap空間
定期檢查Swap文件是否有碎片化(尤其是長期使用的Swap文件),碎片化會增加磁盤I/O時間。解決方法:備份Swap文件(sudo cp /swapfile /swapfile.bak),刪除原Swap文件(sudo rm /swapfile),重新創建并啟用新的Swap文件(步驟同創建Swap文件),最后恢復數據(若有需要)。此外,定期清理不必要的臨時文件和緩存(sudo apt clean、sudo journalctl --vacuum-size=100M)可減少內存占用,間接降低Swap使用率。