回覆列表
  • 1 # 抓到3個貓的河南

    如果你曾經和伺服器廠商打過交道,就會發現他們對於記憶體容量的渴求是極其貪婪的。是啊,電信、證券、量化這些不差錢的主顧在嘗試了記憶體資料庫百倍速度的高潮後,已經不能夠回頭了。畢竟0.01秒的響應提升,就意味著白花花的銀子。當這個壓力傳導給提供機器的伺服器廠商的時候,他們的內心一定是甜蜜又伴隨著一絲酸楚的。24TB這個數字,框定了利潤的上限,這是更多的金錢所不能突破的。

    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。

    框圖不夠生動,我們來看個實際的例子

    伺服器最大支援的記憶體數量不在於是64位還是Bitwidth,而在於能夠插多少記憶體條。如果是16路E7,最大記憶體可以達到48TB。E5系列記憶體相比E7就差一大截了。

    DIMM形式封裝的傲騰記憶體在不遠的將來也許會打破這種限制,傲騰DIMM記憶體可以達到2T以上每根,到那時也許bitwidth必須要加寬了。錢多的主顧紛紛表示,真香!

  • 中秋節和大豐收的關聯?
  • 讓天下沒有難做的實體生意!能實現這個理想嗎?