1. 程式人生 > 其它 >Debian 10 系統新增 swap

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/ 本文內容如有雷同,請聯絡作者! 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。