Linux 中交換空間 (swap)應該分多大才好?
前一段時間,我們機房中一臺Linux伺服器執行緩慢,系統服務出現間歇性停止響應,讓我過去處理一下這一問題,登入到伺服器之後,發現此伺服器的實體記憶體是16G,而最初裝機的時候,系統管理人員卻只分配了4G的虛擬記憶體。檢視記憶體的使用狀況,實體記憶體並沒有完全耗盡,但虛擬記憶體已經耗盡,整個系統CPU負載和磁碟IO都非常高。
知道了問題所在是由於交換分割槽不足導致,那麼解決方法就是:將虛擬記憶體透過虛擬檔案的方式增加到16G,系統執行狀況明顯好轉。其實虛擬記憶體並不是等到實體記憶體用盡了才使用的,是否儘量的使用或不使用swap,在核心空間有一個引數控制。
[root@web ~]# cat /proc/sys/vm/swappiness
60
swappiness=0 的時候表示最大限度使用實體記憶體,然後才是swap空間;swappiness=100 的時候表示積極的使用swap分割槽,並且把記憶體上的資料及時的搬運到swap空間裡面。對於現在動輒幾十GB、上百GB實體記憶體的伺服器來說,究竟為其Linux系統設定多大的交換分割槽合適呢?為此,我引用紅帽官方里的一段文字進行簡單說明一下,嘿嘿。
目前紅帽官方推薦交換分割槽的大小應當與系統實體記憶體的大小保持線性比例關係,不過在小於2GB實體記憶體的系統中,交換分割槽大小應該設定為記憶體大小的兩倍,如果記憶體大小多於2GB,交換分割槽大小應該是實體記憶體大小加上2GB。其原因在於,系統中的實體記憶體越大, 對於記憶體的負荷可能也越大。但是,如果實體記憶體大小擴充套件到數百GB,這樣做就沒什麼意義了,大家說對吧!
實際上,系統中交換分割槽的大小並不取決於實體記憶體的量,而是取決於系統中記憶體的負荷。 Enterprise Linux 可以在這樣的情況下工作:完全沒有交換分割槽,而且系統中匿名記憶體頁和共享記憶體頁小於3/4的實體記憶體量。在這種情況下,系統會將匿名記憶體頁和共享記憶體頁鎖定在實體記憶體中,而使用剩餘的實體記憶體來緩衝檔案系統資料(pagecache),當記憶體耗盡時,系統核心只會回收利用這些pagecache記憶體。
考慮到以下情況:
1)安裝系統時難以確定記憶體的負荷,如何設定交換分割槽大小
2)系統中實體記憶體越大,所需交換分割槽就會越少
因此,在Red Hat Enterprise Linux 中,以下是設定合適的交換分割槽大小的規則:
實體記憶體 | 交換分割槽(SWAP) |
<= 4G | 至少4G |
4~16G | 至少8G |
16G~64G | 至少16G |
64G~256G | 至少32G |
注:
1.但我們平時安裝系統時,預設都分記憶體的2倍,因為現在有硬碟空間都很大,也不在乎那幾十G的空間,嘿嘿!(其實也是為了省事)
2.其它作業系統也是類似。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26745044/viewspace-2725451/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux交換空間swap講解Linux
- redhat6.9增加swap交換空間大小Redhat
- linux 禁止swap交換Linux
- LINUX 建立swap空間Linux
- linux 修改swap空間Linux
- 檢查交換空間: 可用的交換空間為 0 MB, 所需的交換空間為 150 MB。 未通過
- Linux 磁碟掛載和swap空間管理Linux
- Linux下swap(交換分割槽)的增刪改Linux
- java交換元素swap方法Java
- 淺談Linux作業系統的Swap交換區Linux作業系統
- 教你如何進行 linux swap 交換記憶體擴容Linux記憶體
- 雲端計算:交換分割槽管理 Swap
- 網站空間應該如何購買?網站
- 1.1_3_1 電路交換、報文交換、分組交換
- 網站空間應該如何購買呢網站
- 64位win10多大硬碟空間合適_64位win10支援多大硬碟空間Win10硬碟
- Linux 系統上交換空間的介紹Linux
- linux交換分割槽Linux
- win10需要多大空間_win10裝完系統有多大Win10
- UNDO表空間空間回收及切換
- 一次交換空間設定不合理引發的故障
- 線性代數應該這樣學6:積空間,商空間,多項式
- 【leetcode】24. Swap Nodes in Pairs 連結串列奇偶節點交換LeetCodeAI
- win10 c盤要多大空間合適Win10
- 我的語言模型應該有多大?模型
- linux交換分割槽調整Linux
- 3-04. 實現箱子儲物空間的儲存和資料交換
- [Linux]程序地址空間Linux
- 思科交換機vlan的劃分
- 資料庫連線池到底應該設多大?資料庫
- Oracle Temp 表空間切換Oracle
- 2-色彩空間轉換
- 交換機功能及分類介紹
- 計算機網路系列--什麼是電路交換和分組交換?計算機網路
- 空間向量變換,以及OpenGL的glm庫簡單應用
- 簡歷應該用什麼字型?多大號字呢?
- Linux程式上下文和中斷上下文核心空間和使用者空間Linux
- 提高安全性,優雅實現複製與交換:C++中的Copy-and-Swap慣用法C++