[轉(zhuǎn)]SMP NUMA MPP服務器體系結(jié)構(gòu)介紹

[轉(zhuǎn)] SMP、NUMA、MPP體系結(jié)構(gòu)介紹

說明:Greenplum是一款基于MPP架構(gòu)的數(shù)據(jù)庫


原文地址

從系統(tǒng)架構(gòu)來看,目前的商用服務器大體可以分為三類屯烦,即對稱多處理器結(jié)構(gòu) (SMP : Symmetric Multi-Processor) ,非一致存儲訪問結(jié)構(gòu) (NUMA : Non-Uniform Memory Access) ,以及海量并行處理結(jié)構(gòu) (MPP : Massive Parallel Processing) 驻龟。它們的特征分別描述如下:

1. SMP(Symmetric Multi-Processor)

SMP (Symmetric Multi Processing),對稱多處理系統(tǒng)內(nèi)有許多緊耦合多處理器温眉,在這樣的系統(tǒng)中,所有的CPU共享全部資源翁狐,如總線类溢,內(nèi)存和I/O系統(tǒng)等,操作系統(tǒng)或管理數(shù)據(jù)庫的復本只有一個露懒,這種系統(tǒng)有一個最大的特點就是共享所有資源闯冷。多個CPU之間沒有區(qū)別,平等地訪問內(nèi)存懈词、外設(shè)蛇耀、一個操作系統(tǒng)。操作系統(tǒng)管理著一個隊列坎弯,每個處理器依次處理隊列中的進程纺涤。如果兩個處理器同時請求訪問一個資源(例如同一段內(nèi)存地址),由硬件荞怒、軟件的鎖機制去解決資源爭用問題洒琢。Access to RAM is serialized; this and cache coherency issues causes performance to lag slightly behind the number of additional processors in the system.

所謂對稱多處理器結(jié)構(gòu),是指服務器中多個 CPU 對稱工作褐桌,無主次或從屬關(guān)系。各 CPU 共享相同的物理內(nèi)存象迎,每個 CPU 訪問內(nèi)存中的任何地址所需時間是相同的荧嵌,因此 SMP 也被稱為一致存儲器訪問結(jié)構(gòu) (UMA : Uniform Memory Access) 。對 SMP 服務器進行擴展的方式包括增加內(nèi)存砾淌、使用更快的 CPU 啦撮、增加 CPU 、擴充 I/O( 槽口數(shù)與總線數(shù) ) 以及添加更多的外部設(shè)備 ( 通常是磁盤存儲 ) 汪厨。

SMP 服務器的主要特征是共享赃春,系統(tǒng)中所有資源 (CPU 、內(nèi)存劫乱、 I/O 等 ) 都是共享的织中。也正是由于這種特征,導致了 SMP 服務器的主要問題衷戈,那就是它的擴展能力非常有限狭吼。對于 SMP 服務器而言,每一個共享的環(huán)節(jié)都可能造成 SMP 服務器擴展時的瓶頸殖妇,而最受限制的則是內(nèi)存刁笙。由于每個 CPU 必須通過相同的內(nèi)存總線訪問相同的內(nèi)存資源,因此隨著 CPU 數(shù)量的增加,內(nèi)存訪問沖突將迅速增加疲吸,最終會造成 CPU 資源的浪費座每,使 CPU 性能的有效性大大降低。實驗證明摘悴, SMP 服務器 CPU 利用率最好的情況是 2 至 4 個 CPU 峭梳。


圖 1.SMP 服務器 CPU 利用率狀態(tài)

2. NUMA(Non-Uniform Memory Access)

  由于 SMP 在擴展能力上的限制,人們開始探究如何進行有效地擴展從而構(gòu)建大型系統(tǒng)的技術(shù)烦租, NUMA 就是這種努力下的結(jié)果之一延赌。利用 NUMA 技術(shù),可以把幾十個 CPU( 甚至上百個 CPU) 組合在一個服務器內(nèi)叉橱。其 CPU 模塊結(jié)構(gòu)如圖 2 所示:


圖 2.NUMA 服務器 CPU 模塊結(jié)構(gòu)

NUMA 服務器的基本特征是具有多個 CPU 模塊挫以,每個 CPU 模塊由多個 CPU( 如 4 個 ) 組成,并且具有獨立的本地內(nèi)存窃祝、 I/O 槽口等掐松。由于其節(jié)點之間可以通過互聯(lián)模塊 ( 如稱為 Crossbar Switch) 進行連接和信息交互,因此每個 CPU 可以訪問整個系統(tǒng)的內(nèi)存 ( 這是 NUMA 系統(tǒng)與 MPP 系統(tǒng)的重要差別 ) 粪小。顯然大磺,訪問本地內(nèi)存的速度將遠遠高于訪問遠地內(nèi)存 ( 系統(tǒng)內(nèi)其它節(jié)點的內(nèi)存 ) 的速度,這也是非一致存儲訪問 NUMA 的由來探膊。由于這個特點杠愧,為了更好地發(fā)揮系統(tǒng)性能,開發(fā)應用程序時需要盡量減少不同 CPU 模塊之間的信息交互逞壁。

利用 NUMA 技術(shù)流济,可以較好地解決原來 SMP 系統(tǒng)的擴展問題,在一個物理服務器內(nèi)可以支持上百個 CPU 腌闯。比較典型的 NUMA 服務器的例子包括 HP 的 Superdome 绳瘟、 SUN15K 、 IBMp690 等姿骏。

  但 NUMA 技術(shù)同樣有一定缺陷糖声,由于訪問遠地內(nèi)存的延時遠遠超過本地內(nèi)存,因此當 CPU 數(shù)量增加時分瘦,系統(tǒng)性能無法線性增加蘸泻。如 HP 公司發(fā)布 Superdome 服務器時,曾公布了它與 HP 其它 UNIX 服務器的相對性能值擅腰,結(jié)果發(fā)現(xiàn)蟋恬, 64 路 CPU 的 Superdome (NUMA 結(jié)構(gòu) ) 的相對性能值是 20 ,而 8 路 N4000( 共享的 SMP 結(jié)構(gòu) ) 的相對性能值是 6.3 趁冈。從這個結(jié)果可以看到歼争, 8 倍數(shù)量的 CPU 換來的只是 3 倍性能的提升拜马。

3. MPP(Massive Parallel Processing)

  和 NUMA 不同, MPP 提供了另外一種進行系統(tǒng)擴展的方式沐绒,它由多個 SMP 服務器通過一定的節(jié)點互聯(lián)網(wǎng)絡(luò)進行連接俩莽,協(xié)同工作,完成相同的任務乔遮,從用戶的角度來看是一個服務器系統(tǒng)扮超。其基本特征是由多個 SMP 服務器 ( 每個 SMP 服務器稱節(jié)點 ) 通過節(jié)點互聯(lián)網(wǎng)絡(luò)連接而成,每個節(jié)點只訪問自己的本地資源 ( 內(nèi)存蹋肮、存儲等 ) 出刷,是一種完全無共享 (Share Nothing) 結(jié)構(gòu),因而擴展能力最好坯辩,理論上其擴展無限制馁龟,目前的技術(shù)可實現(xiàn) 512 個節(jié)點互聯(lián),數(shù)千個 CPU 漆魔。目前業(yè)界對節(jié)點互聯(lián)網(wǎng)絡(luò)暫無標準坷檩,如 NCR 的 Bynet , IBM 的 SPSwitch 改抡,它們都采用了不同的內(nèi)部實現(xiàn)機制矢炼。但節(jié)點互聯(lián)網(wǎng)僅供 MPP 服務器內(nèi)部使用,對用戶而言是透明的阿纤。

  在 MPP 系統(tǒng)中句灌,每個 SMP 節(jié)點也可以運行自己的操作系統(tǒng)、數(shù)據(jù)庫等欠拾。但和 NUMA 不同的是涯塔,它不存在異地內(nèi)存訪問的問題。換言之清蚀,每個節(jié)點內(nèi)的 CPU 不能訪問另一個節(jié)點的內(nèi)存。節(jié)點之間的信息交互是通過節(jié)點互聯(lián)網(wǎng)絡(luò)實現(xiàn)的爹谭,這個過程一般稱為數(shù)據(jù)重分配 (Data Redistribution) 枷邪。

但是 MPP 服務器需要一種復雜的機制來調(diào)度和平衡各個節(jié)點的負載和并行處理過程。目前一些基于 MPP 技術(shù)的服務器往往通過系統(tǒng)級軟件 ( 如數(shù)據(jù)庫 ) 來屏蔽這種復雜性诺凡。舉例來說东揣, NCR 的 Teradata 就是基于 MPP 技術(shù)的一個關(guān)系數(shù)據(jù)庫軟件,基于此數(shù)據(jù)庫來開發(fā)應用時腹泌,不管后臺服務器由多少個節(jié)點組成嘶卧,開發(fā)人員所面對的都是同一個數(shù)據(jù)庫系統(tǒng),而不需要考慮如何調(diào)度其中某幾個節(jié)點的負載凉袱。

MPP (Massively Parallel Processing)芥吟,大規(guī)模并行處理系統(tǒng)侦铜,這樣的系統(tǒng)是由許多松耦合的處理單元組成的,要注意的是這里指的是處理單元而不是處理器钟鸵。每個單元內(nèi)的CPU都有自己私有的資源,如總線棺耍,內(nèi)存贡未,硬盤等。在每個單元內(nèi)都有操作系統(tǒng)和管理數(shù)據(jù)庫的實例復本蒙袍。這種結(jié)構(gòu)最大的特點在于不共享資源俊卤。


4. 三種體系架構(gòu)之間的差異

4.1 SMP系統(tǒng)與MPP系統(tǒng)比較

既然有兩種結(jié)構(gòu),那它們各有什么特點呢害幅?采用什么結(jié)構(gòu)比較合適呢消恍?通常情況下,MPP系統(tǒng)因為要在不同處理單元之間傳送信息(請注意上圖)矫限,所以它的效率要比SMP要差一點哺哼,但是這也不是絕對的,因為MPP系統(tǒng)不共享資源叼风,因此對它而言取董,資源比SMP要多,當需要處理的事務達到一定規(guī)模時无宿,MPP的效率要比SMP好茵汰。這就是看通信時間占用計算時間的比例而定,如果通信時間比較多孽鸡,那MPP系統(tǒng)就不占優(yōu)勢了蹂午,相反,如果通信時間比較少彬碱,那MPP系統(tǒng)可以充分發(fā)揮資源的優(yōu)勢豆胸,達到高效率。當前使用的OTLP程序中巷疼,用戶訪問一個中心數(shù)據(jù)庫晚胡,如果采用SMP系統(tǒng)結(jié)構(gòu),它的效率要比采用MPP結(jié)構(gòu)要快得多嚼沿。而MPP系統(tǒng)在決策支持和數(shù)據(jù)挖掘方面顯示了優(yōu)勢估盘,可以這樣說,如果操作相互之間沒有什么關(guān)系骡尽,處理單元之間需要進行的通信比較少遣妥,那采用MPP系統(tǒng)就要好,相反就不合適了攀细。

通過上面兩個圖我們可以看到箫踩,對于SMP來說爱态,制約它速度的一個關(guān)鍵因素就是那個共享的總線,因此對于DSS程序來說班套,只能選擇MPP肢藐,而不能選擇SMP,當大型程序的處理要求大于共享總線時吱韭,總線就沒有能力進行處理了吆豹,這時SMP系統(tǒng)就不行了。當然了理盆,兩個結(jié)構(gòu)互有優(yōu)缺點痘煤,如果能夠?qū)煞N結(jié)合起來取長補短,當然最好了猿规。


4.2 NUMA 與 MPP 的區(qū)別

  從架構(gòu)來看衷快, NUMA 與 MPP 具有許多相似之處:它們都由多個節(jié)點組成,每個節(jié)點都具有自己的 CPU 姨俩、內(nèi)存蘸拔、 I/O ,節(jié)點之間都可以通過節(jié)點互聯(lián)機制進行信息交互环葵。那么它們的區(qū)別在哪里调窍?通過分析下面 NUMA 和 MPP 服務器的內(nèi)部架構(gòu)和工作原理不難發(fā)現(xiàn)其差異所在。

  首先是節(jié)點互聯(lián)機制不同张遭, NUMA 的節(jié)點互聯(lián)機制是在同一個物理服務器內(nèi)部實現(xiàn)的邓萨,當某個 CPU 需要進行遠地內(nèi)存訪問時,它必須等待菊卷,這也是 NUMA 服務器無法實現(xiàn) CPU 增加時性能線性擴展的主要原因缔恳。而 MPP 的節(jié)點互聯(lián)機制是在不同的 SMP 服務器外部通過 I/O 實現(xiàn)的,每個節(jié)點只訪問本地內(nèi)存和存儲洁闰,節(jié)點之間的信息交互與節(jié)點本身的處理是并行進行的歉甚。因此 MPP 在增加節(jié)點時性能基本上可以實現(xiàn)線性擴展。

其次是內(nèi)存訪問機制不同扑眉。在 NUMA 服務器內(nèi)部铃芦,任何一個 CPU 可以訪問整個系統(tǒng)的內(nèi)存,但遠地訪問的性能遠遠低于本地內(nèi)存訪問襟雷,因此在開發(fā)應用程序時應該盡量避免遠地內(nèi)存訪問。在 MPP 服務器中仁烹,每個節(jié)點只訪問本地內(nèi)存耸弄,不存在遠地內(nèi)存訪問的問題。


圖 3.MPP 服務器架構(gòu)圖

數(shù)據(jù)倉庫的選擇

  哪種服務器更加適應數(shù)據(jù)倉庫環(huán)境卓缰?這需要從數(shù)據(jù)倉庫環(huán)境本身的負載特征入手计呈。眾所周知砰诵,典型的數(shù)據(jù)倉庫環(huán)境具有大量復雜的數(shù)據(jù)處理和綜合分析,要求系統(tǒng)具有很高的 I/O 處理能力捌显,并且存儲系統(tǒng)需要提供足夠的 I/O 帶寬與之匹配茁彭。而一個典型的 OLTP 系統(tǒng)則以聯(lián)機事務處理為主,每個交易所涉及的數(shù)據(jù)不多扶歪,要求系統(tǒng)具有很高的事務處理能力理肺,能夠在單位時間里處理盡量多的交易。顯然這兩種應用環(huán)境的負載特征完全不同善镰。

  從 NUMA 架構(gòu)來看妹萨,它可以在一個物理服務器內(nèi)集成許多 CPU ,使系統(tǒng)具有較高的事務處理能力炫欺,由于遠地內(nèi)存訪問時延遠長于本地內(nèi)存訪問乎完,因此需要盡量減少不同 CPU 模塊之間的數(shù)據(jù)交互。顯然品洛, NUMA 架構(gòu)更適用于 OLTP 事務處理環(huán)境树姨,當用于數(shù)據(jù)倉庫環(huán)境時,由于大量復雜的數(shù)據(jù)處理必然導致大量的數(shù)據(jù)交互桥状,將使 CPU 的利用率大大降低帽揪。

相對而言, MPP 服務器架構(gòu)的并行處理能力更優(yōu)越岛宦,更適合于復雜的數(shù)據(jù)綜合分析與處理環(huán)境台丛。當然,它需要借助于支持 MPP 技術(shù)的關(guān)系數(shù)據(jù)庫系統(tǒng)來屏蔽節(jié)點之間負載平衡與調(diào)度的復雜性砾肺。另外挽霉,這種并行處理能力也與節(jié)點互聯(lián)網(wǎng)絡(luò)有很大的關(guān)系。顯然变汪,適應于數(shù)據(jù)倉庫環(huán)境的 MPP 服務器侠坎,其節(jié)點互聯(lián)網(wǎng)絡(luò)的 I/O 性能應該非常突出,才能充分發(fā)揮整個系統(tǒng)的性能裙盾。

4.3 NUMA实胸、MPP、SMP之間性能的區(qū)別


NUMA的節(jié)點互聯(lián)機制是在同一個物理服務器內(nèi)部實現(xiàn)的番官,當某個CPU需要進行遠地內(nèi)存訪問時庐完,它必須等待,這也是NUMA服務器無法實現(xiàn)CPU增加時性能線性擴展徘熔。

MPP的節(jié)點互聯(lián)機制是在不同的SMP服務器外部通過I/O實現(xiàn)的门躯,每個節(jié)點只訪問本地內(nèi)存和存儲,節(jié)點之間的信息交互與節(jié)點本身的處理是并行進行的酷师。因此MPP在增加節(jié)點時性能基本上可以實現(xiàn)線性擴展讶凉。

SMP所有的CPU資源是共享的染乌,因此完全實現(xiàn)線性擴展。

4.4 NUMA懂讯、MPP荷憋、SMP之間擴展的區(qū)別


NUMA理論上可以無限擴展,目前技術(shù)比較成熟的能夠支持上百個CPU進行擴展褐望。如HP的SUPERDOME勒庄。

MPP理論上也可以實現(xiàn)無限擴展,目前技術(shù)比較成熟的能夠支持512個節(jié)點譬挚,數(shù)千個CPU進行擴展锅铅。

SMP擴展能力很差,目前2個到4個CPU的利用率最好减宣,但是IBM的BOOK技術(shù)盐须,能夠?qū)PU擴展到8個。

MPP是由多個SMP構(gòu)成漆腌,多個SMP服務器通過一定的節(jié)點互聯(lián)網(wǎng)絡(luò)進行連接贼邓,協(xié)同工作,完成相同的任務闷尿。

4.5 MPP和SMP塑径、NUMA應用之間的區(qū)別


MPP的優(yōu)勢:


MPP系統(tǒng)不共享資源,因此對它而言填具,資源比SMP要多统舀,當需要處理的事務達到一定規(guī)模時,MPP的效率要比SMP好劳景。由于MPP系統(tǒng)因為要在不同處理單元之間傳送信息誉简,在通訊時間少的時候,那MPP系統(tǒng)可以充分發(fā)揮資源的優(yōu)勢盟广,達到高效率闷串。也就是說:操作相互之間沒有什么關(guān)系,處理單元之間需要進行的通信比較少筋量,那采用MPP系統(tǒng)就要好烹吵。因此,MPP系統(tǒng)在決策支持和數(shù)據(jù)挖掘方面顯示了優(yōu)勢桨武。


SMP的優(yōu)勢:


MPP系統(tǒng)因為要在不同處理單元之間傳送信息肋拔,所以它的效率要比SMP要差一點。在通訊時間多的時候呀酸,那MPP系統(tǒng)可以充分發(fā)揮資源的優(yōu)勢只损。因此當前使用的OTLP程序中,用戶訪問一個中心數(shù)據(jù)庫,如果采用SMP系統(tǒng)結(jié)構(gòu)跃惫,它的效率要比采用MPP結(jié)構(gòu)要快得多。

NUMA架構(gòu)的優(yōu)勢:


NUMA架構(gòu)來看艾栋,它可以在一個物理服務器內(nèi)集成許多CPU爆存,使系統(tǒng)具有較高的事務處理能力,由于遠地內(nèi)存訪問時延遠長于本地內(nèi)存訪問蝗砾,因此需要盡量減少不同CPU模塊之間的數(shù)據(jù)交互先较。顯然,NUMA架構(gòu)更適用于OLTP事務處理環(huán)境悼粮,當用于數(shù)據(jù)倉庫環(huán)境時闲勺,由于大量復雜的數(shù)據(jù)處理必然導致大量的數(shù)據(jù)交互,將使CPU的利用率大大降低扣猫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末菜循,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子申尤,更是在濱河造成了極大的恐慌癌幕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昧穿,死亡現(xiàn)場離奇詭異勺远,居然都是意外死亡,警方通過查閱死者的電腦和手機时鸵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門胶逢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饰潜,你說我怎么就攤上這事初坠。” “怎么了囊拜?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵某筐,是天一觀的道長。 經(jīng)常有香客問我冠跷,道長南誊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任蜜托,我火速辦了婚禮抄囚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘橄务。我一直安慰自己幔托,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著重挑,像睡著了一般嗓化。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谬哀,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天刺覆,我揣著相機與錄音,去河邊找鬼史煎。 笑死谦屑,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的篇梭。 我是一名探鬼主播氢橙,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼恬偷!你這毒婦竟也來了悍手?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤喉磁,失蹤者是張志新(化名)和其女友劉穎谓苟,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體协怒,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡涝焙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了孕暇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仑撞。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妖滔,靈堂內(nèi)的尸體忽然破棺而出隧哮,到底是詐尸還是另有隱情,我是刑警寧澤座舍,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布沮翔,位于F島的核電站,受9級特大地震影響曲秉,放射性物質(zhì)發(fā)生泄漏采蚀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一承二、第九天 我趴在偏房一處隱蔽的房頂上張望榆鼠。 院中可真熱鬧,春花似錦亥鸠、人聲如沸妆够。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽神妹。三九已至颓哮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鸵荠,已是汗流浹背题翻。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留腰鬼,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓塑荒,卻偏偏與公主長得像熄赡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子齿税,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容