給Linux分配多少Swap空間才夠呢?

Swap交換大小應該是多少?交換應該是RAM大小的兩倍還是RAM大小的一半?如果我的系統有幾GB的RAM,我是否需要交換?
也許這些是關于在安裝Linux時選擇交換大小的最常見問題。
這不是什么新鮮事。交換大小一直存在很多混亂。

Swap兩倍于內存的時代已經過去

很長一段時間,推薦的交換大小是RAM大小的兩倍,但這條黃金法則不再適用于現代計算機。

我們的系統RAM大小高達128 GB,許多舊計算機甚至沒有這么多的硬盤。但是你會分配到具有32 GB RAM的系統的交換大小? 64GB?那將是一個荒謬的硬盤浪費,不是嗎?

在了解需要分配Swap空間應該分配多大之前,讓我們先快速了解交換內存的一兩件事。
這些有助于讓每個人真正理解為什么Linux需要Swap交換空間。

什么是Swap?Swap什么時候會被使用到?

我們都知道計算機系統在運行的時候會使用到RAM(Random Access Memory),當只有少數應用程序在運行時,系統會使用可用的RAM進行管理。

但是如果有很多很多的程序在運行,那么就需要非常大容量RAM,這時候計算機RAM不夠,應用程序就會崩潰。

當RAM耗盡時,Swap交換空間會被系統使用。當RAM耗盡時,Linux系統使用部分硬盤內存并將其分配給正在運行的應用程序。

這聽起來非常不錯,這意味著如果我們如果分配50GBSwap交換空間,系統或許可以同時運行成百上千的應用程序?是這樣么?大錯特錯!!!

你知道的,程序運行速度十分重要;
RAM訪問數據的大小為納秒級;
SSD訪問數據(以微秒為單位),而普通硬盤以毫秒為單位訪問數據;
這意味著RAM比SSD快1000倍,比普通HDD快100,000倍。

如果應用程序過分依賴Swap交換空間,則其性能將下降,因為它無法以與RAM中相同的速度訪問數據。
因此,完成相同任務可能需要幾分鐘才能完成任務,而不需要花費1秒鐘完成任務。這將使應用程序幾乎無用。這被稱為計算術語中的顛簸。

Swap交換空間只是用來應急的,所以它的分配要適量。

為什么需要Swap交換空間

以下是需要交換空間Swap的幾個原因

  • 如果系統的RAM小于1GB,就必須使用Swap交換空間,不然沒運行幾個應用程序,他們就會崩潰
  • 如果系統運行了非常重的應用程序,例如視頻制作軟件,使用Swap交換空間可以防止因為RAM空間不夠用導致的軟件崩潰
  • 如果電腦休眠了,斷電RAM會被斷電;RAM沒有斷電記憶功能,因此要將這些內容暫時存入Swap交換空間里,當從休眠中恢復過來的時候,這些內容會被重新讀入RAM,保證程序繼續運行
  • 為了避免有些程序瘋狂的吃掉很多內存,這個時候需要Swap來幫助我們規避這些風險

當RAM很大的時候,需不需要分配很大的交換空間?

如果你的RAM有32GB或者64GB,你的系統可能永遠都不會使用到這么多的交換分區。

我猜測,如果你的系統有32GB的RAM,它或許至少有100GB的硬盤。
分配幾GB的交換空間應該也無關痛癢,如果錯誤的程序開始濫用RAM,它將提供額外的“穩定性”。

應該分配多大的Swap交換空間

現在回到這個最大的問題上,應該給Linux分配多少Swap空間才夠。
答案是沒有一個確切的答案,不過倒是有一些建議,不同的人根據自己的實際情況分配交換空間的大小。

如果根據Red Hat的建議,他們建議是分配RAM 20%的換空間,也就是RAM是8GB,分配1.6GB交換空間。

CentOS建議

  • 如果RAM小于2GB,就分配和RAM同等大小的Swap交換空間。
  • 如果RAM大于2GB,就分配2GB交換空間

Ubuntu考慮到系統需要休眠,

  • 如果RAM小于1GB,Swap空間至少要和RAM一樣大,甚至是要為RAM的兩倍大小
  • 如果RAM大于1GB,Swap交換空間應該至少等于RAM大小的平方根,并且最多為RAM大小的兩倍
  • 如果要休眠,Swap交換大小應該等于RAM的大小加上RAM大小的平方根

Ubuntu建議的Swap分配表

Ram大小 Swap大小 激活Swap后合計大小
256MB 256MB 512MB
512MB 512MB 1GB
1GB 1GB 2GB
3GB 2GB 5GB
4GB 2GB 6GB
6GB 2GB 8GB
8GB 3GB 11GB
12GB 3GB 15GB
16GB 4GB 20GB
32GB 6GB 38GB
64GB 8GB 72GB
128GB 11GB 139GB

結語

事實上沒有一個真正確定的Swap交換空間分配大小,根據實際情況來吧,如果你不在乎多點交換空間,可以使用兩倍于RAM的這種方案。
你更傾向于使用哪種方案呢?

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容