查ICP網:全新的綜合網站備案信息查詢網
Copyright ? 2008-2028 www.mshuangcha.com [ 查icp] All Rights Reserved.
服務器內存主要起什么作用,服務器大內存有什么好處?
1、服務器內存主要是用來存儲臨時數據,做緩存用的。服務器系統本身所占的內存比較少,內存需要消耗的大小,取決于你服務器里跑的應用程序。
2、理論上來說內存越大越好,可以將更多的臨時數據放到內存里面,避免直接讀硬盤,畢竟讀內存的速度要比讀硬盤的速度快很多,但從經濟的角度來看,夠用就好了,多了,服務器也用不上,放在那里浪費。
如果你曾經和服務器廠商打過交道,就會發現他們對于內存容量的渴求是極其貪婪的。是啊,電信、證券、量化這些不差錢的主顧在嘗試了內存數據庫百倍速度的高潮后,已經不能夠回頭了。畢竟0.01秒的響應提升,就意味著白花花的銀子。當這個壓力傳導給提供機器的服務器廠商的時候,他們的內心一定是甜蜜又伴隨著一絲酸楚的。24TB這個數字,框定了利潤的上限,這是更多的金錢所不能突破的。
這帶來一個根本性的問題,單機服務器最大內存的極限是怎么確定的?它的制約因素有哪些?為了簡化討論范圍,我們限定在占據服務器市場98%以上的X86服務器,并假設不受成本的約束。我們從CPU內核和操作系統、以及存儲子系統兩方面來尋找答案。
CPU內核和操作系統
操作系統和CPU內核都支持64位地址空間,它能夠訪問的地址空間是
2^64=16384 PB
好大的空間,似乎永遠也用不完。是不是這個是內存容量的極限呢?實際上即使在CPU內核中還有一個因子,限制了CPU和操作系統的尋址空間,那就是bitwidth。它決定了頁表轉換的地址長度,它現在最大是48位(我印象里),它可以從寄存器里面讀出來,越新和服務器CPU,這個值越大。那么新的地址空間最大是多少呢?
2^48=256 TB
256TB,小了不少,是不是這就是內存容量的極限了呢?實際上并不是。
內存子系統
現代計算機系統的內存都由CPU內置的內存控制器來管理,為了尋找內存的極限,我們把目光投入到志強中的戰斗機,E7服務器上。E7面向對高可靠性和高可擴展性需求強烈的用戶,當然價格也十分感人。高可靠性說的是RAS,高可擴展性是說可以擴展為4路,8路,甚至16路服務器。所謂n路,通俗的說就是有n個物理CPU。
16路服務器十分十分罕見,部分原因在于從8路擴展為16路后,保證cache一致性所發的snoop包會降低性能,在某些情況下得不償失。我們這里就略過。8路服務器作為主流最高端服務器,它的內存最大能夠達到多少呢?
我們先來看一下它的內存子系統:
E7 CPU后面并不直接插內存條DIMM,這點和E5不一樣。內存條插在一個叫做SMB(Scalable Memory Buffer)的芯片后面。每個SMB支持兩個Channel,每個Channel后面可以插3根DIMM(圖里是兩個,實際可插三個)。SMB和CPU直接通過一種叫做SMI Link(Scalable Memory Interconnect)的總線連接,一個CPU可以連接四個SMB。