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
- 在Linux中增加swap空間Linux
- LINUX 建立swap空間Linux
- linux 修改swap空間Linux
- Linux增加swap空間Linux
- 擴充linux swap空間Linux
- Linux之 增加swap空間Linux
- linux swap(交換)Linux
- linux 禁止swap交換Linux
- AIX分頁(交換)空間的監控AI
- Linux 磁碟掛載和swap空間管理Linux
- 為Linux系統手工新增SWAP空間Linux
- linux系統檢視調整swap空間Linux
- Linux 系統上交換空間的介紹Linux
- Linux SWAP 交換分割槽配置說明Linux
- swap空間不足問題解決
- 網站空間應該如何購買?網站
- 64位win10多大硬碟空間合適_64位win10支援多大硬碟空間Win10硬碟
- Linux Swap交換分割槽介紹總結Linux
- java交換元素swap方法Java
- HP-UX擴充套件swap空間UX套件
- 網站空間應該如何購買呢網站
- Linux下swap(交換分割槽)的增刪改Linux
- AIX培訓筆記——交換空間AI筆記
- 我的語言模型應該有多大?模型
- win10需要多大空間_win10裝完系統有多大Win10
- 淺談Linux作業系統的Swap交換區Linux作業系統
- 【Linux】Linux檔案系統管理4 swap交換分割槽管理Linux
- win10 c盤要多大空間合適Win10
- swap空間不足導致mysql被OOM kill案例MySqlOOM
- 教你如何進行 linux swap 交換記憶體擴容Linux記憶體
- win10系統盤多大合適 win10系統佔多大空間Win10
- MYSQL中查詢資料庫設定多大,剩餘空間是多少(轉)MySql資料庫
- 在 Linux 上如何清除記憶體的 Cache、Buffer 和交換空間Linux記憶體
- 虛擬塊硬碟,新增點swap分割槽空間(轉)硬碟
- 揭開Linux作業系統的Swap交換區之謎Linux作業系統
- 資料庫連線池到底應該設多大?資料庫
- 雲端計算:交換分割槽管理 Swap