2021-05-12 14:32:11
現代Linux系統的Swap交換空間應該是多少?
Swap交換空間是每個人似乎都知道的事情之一,我也不例外。我認識的系統管理員朋友都有他們的自己的想法,大多數Linux發行版也提出了建議。
Swap交換空間的作用:
Linux系統下的Swap交換空間與Windows下的虛擬記憶體意思差不多,Swap交換空間的作用可簡單這樣理解:當系統的實體記憶體不夠用的時候,就需要將實體記憶體中的一部分空間釋放出來,以供當前執行的程式使用。那些被釋放的空間可能來自一些很長時間沒有什麼操作的程式,這些被釋放的空間被臨時儲存到Swap空間中,等到那些程式要執行時,再從Swap中恢復儲存的資料到 記憶體中。這樣,系統總是在實體記憶體不夠時,才進行swap交換。
許多年前,根據經驗,應該分配的交換空間大小是計算機中安裝的記憶體大小的兩倍。當然,那是計算機記憶體以KB或MB為單位時的時候,所以如果一台計算機有64KB的記憶體,那麼128KB的交換分割區就是最合適的大小。
這考慮到記憶體記憶體大小通常非常小的事實,並且為交換空間分配超過2倍的記憶體並沒有提高效能。對於超過兩倍記憶體的Swap,大多數系統花費的時間比執行有用的工作花費更多時間。
RAM記憶體已經變得相當便宜,許多計算機現在都有幾十GB的記憶體。大多數新電腦都至少有4GB或8GB的記憶體,或者更多記憶體,比如32GB或者64GB。在處理具有大量記憶體的計算時,交換空間的限制效能因素遠遠低於2X乘積。因此,建議的交換空間被認為是系統記憶體工作負載的應變數,而不是系統記憶體。
表1提供了Fedora專案建議的交換分割區大小,具體取決於系統中的記憶體大小以及是否需要足夠的記憶體供系統休眠。要允許休眠,您需要在自定義分割區階段編輯交換空間。 “推薦”交換分割區大小是在預設安裝期間自動建立的,但我通常發現它要麼太大,要麼太小,無法滿足我的需要。
Fedora 28安裝指南定義了有關交換空間分配的當前思路。請注意,其他版本的Fedora和其他Linux發行版可能略有不同,但這與Red Hat Enterprise Linux用於其建議的表相同。這些建議自Fedora 19以來沒有改變。
系統中安裝的RAM大小 | 推薦的交換空間 | 建議的帶休眠模式的交換空間 |
---|---|---|
≤ 2GB | 2X RAM | 3X RAM |
2GB – 8GB | = RAM | 2X RAM |
8GB – 64GB | 4G 到 0.5X RAM | 1.5X RAM |
>64GB | 最低4GB | 不建議休眠 |
表1:Fedora 28文件中推薦的系統交換空間。
表2時專業人員根據多年來在多種環境中的經驗提供的建議。
系統中安裝的RAM大小 | 推薦的交換空間 |
---|---|
≤ 2GB | 2X RAM |
2GB – 8GB | = RAM |
> 8GB | 8GB |
表2:專業人員推薦的系統交換空間
這兩個表都可能不適合您的具體環境,但它們會給您一個參考的方向。主要考慮的是,隨著記憶體數量的增加,那麼這個時候應該讓 Linux 不必太多的使用swap交換空間,這樣可以最大限度的使用實體記憶體,減少硬碟的負載,同時加快速度。如果虛擬記憶體太少,則應新增更多的RAM(如果可能),而不是更多的交換空間。
為了測試Fedora(和RHEL)交換空間的建議,測試了下具有32GB和64GB RAM的兩個系統,交換空間使用了0.5*RAM的建議。即使在執行四個或五個虛擬機器,LibreOffice,Thunderbird,Chrome網路瀏覽器,多個終端對談,Xfe檔案管理器以及許多其他後台應用程式中的多個文件時,唯一一次看到使用swap是在每天凌晨2點左右安排的備份期間。即使這樣,swap使用量不超過16MB。當然並不一定適用於您的真實環境。
現在,我們想知道,對於交換空間,你怎麼想的?
相關文章