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(內存不足)錯誤,或者您發現您的系統無法使用您需要的應​​用程序,最好的解決方案是優化您的應用程序配置或升級您的服務器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM