Debian 10 系統新增 swap
參考:https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-debian-10
警告:雖然通常建議對使用傳統旋轉硬碟驅動器的系統進行交換,但對 SSD 使用交換可能會導致硬體隨著時間的推移出現退化問題。出於這個考慮,我們不建議在任何其他使用 SSD 儲存的提供商上啟用交換。這樣做會影響您和您鄰近的底層硬體的可靠性。本指南供可能在其他地方使用旋轉磁碟系統的使用者參考。如果您需要提高伺服器的效能,我們建議升級您的硬體配置。這通常會帶來更好的結果,並降低導致可能影響您的服務的硬體問題的可能性。
步驟 1 – 檢查系統的交換資訊
$ sudo swapon --show
$ free -h
步驟 2 – 檢查硬碟分割槽上的可用空間
$ df -h
步驟 3 – 建立交換檔案
建立交換檔案的最佳方式是使用fallocate程式。此命令立即建立指定大小的檔案。
$ sudo fallocate -l 1G /swapfile
$ ls -lh /swapfile
步驟 4 – 啟用交換檔案
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ sudo swapon --show
$ free -h
步驟 5 – 使交換檔案永久化
備份/etc/fstab檔案以防萬一出現問題:
$ sudo cp /etc/fstab /etc/fstab.bak
通過鍵入以下內容將交換檔案資訊新增到/etc/fstab檔案末尾:
$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
第 6 步 – 調整您的交換設定
調整 Swappiness 屬性
swappiness引數配置您的系統將資料從 RAM 交換到交換空間的頻率。這是一個介於 0 和 100 之間的值,表示百分比。
值接近於零時,除非絕對必要,否則核心不會將資料交換到磁碟。請記住,與交換檔案的互動是“昂貴的”,因為它們比與 RAM 的互動花費的時間要長得多,並且可能導致效能顯著降低。告訴系統不要過多依賴交換通常會使您的系統更快。
接近 100 的值將嘗試將更多資料放入交換區,以保持更多 RAM 空間可用。根據您的應用程式的記憶體配置檔案或您使用伺服器的目的,在某些情況下這可能會更好。
我們可以通過鍵入以下內容來檢視當前的 swappiness 值:
$ cat /proc/sys/vm/swappiness
對於桌上型電腦,swappiness 設定為 60 是一個不錯的值。對於伺服器,您可能希望將其移近 0。
此設定將持續到下一次重新啟動。我們可以通過將以下行新增到我們的/etc/sysctl.conf檔案中,在重新啟動時自動設定此值:
vm.swappiness=10
調整快取壓力設定
您可能想要修改的另一個相關值是vfs_cache_pressure. 此設定配置系統將選擇在多大程度上快取inode和dentry資訊而不是其他資料。
基本上,這是關於檔案系統的訪問資料。這通常是非常昂貴的查詢和非常頻繁的請求,因此對您的系統進行快取是一件極好的事情。您可以通過proc再次查詢檔案系統來檢視當前值:
$ cat /proc/sys/vm/vfs_cache_pressure
由於它當前的配置(預設值:100),我們的系統從快取中刪除 inode 資訊太快了。我們可以通過鍵入以下內容將其設定為更保守的設定(例如:50):
$ sudo sysctl vm.vfs_cache_pressure=50
同樣,這僅對我們當前的會話有效。我們可以通過將它新增到我們的配置檔案中來改變它,就像我們在 Swappiness 設定中所做的那樣:
vm.vfs_cache_pressure=50
總結
遵循本指南中的步驟將為您提供一些交換空間,否則會導致記憶體不足異常。交換空間對於避免其中一些常見問題非常有用。
如果您遇到 OOM(記憶體不足)錯誤,或者您發現您的系統無法使用您需要的應用程式,最好的解決方案是優化您的應用程式配置或升級您的伺服器。
作者:Varden 出處:http://www.cnblogs.com/varden/ 本文內容如有雷同,請聯絡作者! 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。