境外服務(wù)器的3種體系架構(gòu):SMP、NUMA、MPP!
從系統(tǒng)的體系架構(gòu)來看,目前的商用服務(wù)器大體上可以分為3類:SMP(對(duì)稱多處理器)結(jié)構(gòu)、NUMA(非一致存儲(chǔ)訪問)結(jié)構(gòu)和MPP(海量并行處理)結(jié)構(gòu)。這3類系統(tǒng)體系架構(gòu)的服務(wù)器,它們具體的特征描述如下:
一、 SMP(Symmetric Multi-Processor)
所謂“對(duì)稱多處理器”結(jié)構(gòu),是指服務(wù)器中多個(gè)CPU對(duì)稱工作,無主次或從屬關(guān)系。各CPU共享相同的物理內(nèi)存,每個(gè)CPU訪問內(nèi)存中的任何地址所需時(shí)間是相同的,因此SMP也被稱為“一致存儲(chǔ)器訪問”結(jié)構(gòu)(UMA:Uniform Memory Access)。對(duì)SMP服務(wù)器進(jìn)行擴(kuò)展的方式,包括增加內(nèi)存、使用更快的CPU、增加CPU、擴(kuò)充I/O(槽口數(shù)與總線數(shù)),以及添加更多的外部設(shè)備(通常是磁盤存儲(chǔ))。
SMP服務(wù)器的主要特征是“共享”,系統(tǒng)中所有資源(CPU、內(nèi)存、I/O等)都是共享的。也正是由于這種特征,導(dǎo)致了SMP服務(wù)器的主要問題,那就是它的擴(kuò)展能力非常有限。對(duì)于SMP服務(wù)器而言,每一個(gè)共享的環(huán)節(jié)都可能造成SMP服務(wù)器擴(kuò)展時(shí)的瓶頸,而最受限制的則是內(nèi)存。由于每個(gè)CPU必須通過相同的內(nèi)存總線訪問相同的內(nèi)存資源,因此隨著CPU數(shù)量的增加,內(nèi)存訪問沖突也將隨之增加,最終會(huì)造成CPU資源的浪費(fèi),使得CPU性能的有效性大大降低。實(shí)驗(yàn)證明,SMP服務(wù)器CPU利用率最好的情況是2至4個(gè)CPU。
二、NUMA(Non-Uniform Memory Access)
由于SMP服務(wù)器在擴(kuò)展能力上的限制,人們開始探究如何進(jìn)行有效地?cái)U(kuò)展從而構(gòu)建大型系統(tǒng)的技術(shù),NUMA(非一致存儲(chǔ)訪問)就是這種努力下的結(jié)果之一。利用NUMA(非一致存儲(chǔ)訪問)技術(shù),可以把幾十個(gè)CPU,甚至上百個(gè)CPU組合在一個(gè)服務(wù)器內(nèi)。
NUMA服務(wù)器的基本特征是,具有多個(gè)CPU模塊,每個(gè)CPU模塊由多個(gè)CPU(例如4個(gè))組成,并且具有獨(dú)立的本地內(nèi)存、I/O槽口等。由于其節(jié)點(diǎn)之間可以通過互聯(lián)模塊進(jìn)行連接和信息交互,因此每個(gè)CPU都可以訪問整個(gè)系統(tǒng)的內(nèi)存。顯然,訪問本地內(nèi)存的速度,將遠(yuǎn)遠(yuǎn)快于訪問遠(yuǎn)地內(nèi)存(系統(tǒng)內(nèi)其它節(jié)點(diǎn)的內(nèi)存)的速度,這也是“NUMA(非一致存儲(chǔ)訪問)”的由來。由于它的這個(gè)特點(diǎn),為了更好地發(fā)揮系統(tǒng)性能,開發(fā)應(yīng)用程序時(shí)需要盡量減少不同CPU模塊之間的信息交互。利用NUMA(非一致存儲(chǔ)訪問)技術(shù),可以較好地解決原來SMP系統(tǒng)的擴(kuò)展問題,在一個(gè)物理服務(wù)器內(nèi)可以支持上百個(gè)CPU。
但NUMA(非一致存儲(chǔ)訪問)技術(shù)同樣具有一定的缺陷,由于訪問遠(yuǎn)地內(nèi)存的延時(shí),遠(yuǎn)遠(yuǎn)超過本地內(nèi)存,因此當(dāng)CPU數(shù)量增加時(shí),系統(tǒng)性能無法線性增加。例如惠普公司發(fā)布Superdome(超級(jí)穹頂)服務(wù)器時(shí),曾公布了這款服務(wù)器與惠普其它UNIX服務(wù)器的“相對(duì)性能值”,結(jié)果發(fā)現(xiàn),64路CPU的Superdome服務(wù)器 (NUMA結(jié)構(gòu))的相對(duì)性能值是20,而8路N4000服務(wù)器(SMP結(jié)構(gòu))的相對(duì)性能值是6.3。從這個(gè)結(jié)果可以看到,8倍數(shù)量的CPU換來的只是3倍性能的提升。
三、 MPP(Massive Parallel Processing)
和NUMA(非一致存儲(chǔ)訪問)不同,MPP(海量并行處理)提供了另外一種進(jìn)行系統(tǒng)擴(kuò)展的方式,MPP(海量并行處理)由多個(gè)SMP服務(wù)器通過一定的節(jié)點(diǎn)互聯(lián)網(wǎng)絡(luò)進(jìn)行連接,協(xié)同工作,完成相同的任務(wù),從用戶的角度來看是一個(gè)服務(wù)器系統(tǒng)。
MPP服務(wù)器基本特征是,由多個(gè)SMP服務(wù)器(每個(gè)SMP服務(wù)器稱為一個(gè)“節(jié)點(diǎn)”)通過節(jié)點(diǎn)互聯(lián)網(wǎng)絡(luò)連接而成,每個(gè)節(jié)點(diǎn)只訪問自己的本地資源(內(nèi)存、存儲(chǔ)等),是一種“完全無共享/零共享”結(jié)構(gòu),因而擴(kuò)展能力最好,理論上其擴(kuò)展無限制,目前的技術(shù)可實(shí)現(xiàn)512個(gè)節(jié)點(diǎn)的互聯(lián),數(shù)千個(gè)CPU。
在MPP(海量并行處理)系統(tǒng)中,每個(gè)SMP(對(duì)稱多處理器)節(jié)點(diǎn)也可以運(yùn)行自己的操作系統(tǒng)、數(shù)據(jù)庫等。但和NUMA(非一致存儲(chǔ)訪問)不同的是,MPP(海量并行處理)系統(tǒng)不存在“異地內(nèi)存訪問”的問題。換言之,每個(gè)節(jié)點(diǎn)內(nèi)的CPU,都不能訪問另一個(gè)節(jié)點(diǎn)的內(nèi)存。節(jié)點(diǎn)之間的信息交互是通過節(jié)點(diǎn)互聯(lián)網(wǎng)絡(luò)實(shí)現(xiàn)的,這個(gè)過程一般稱為“數(shù)據(jù)重分配”。
MPP服務(wù)器需要一種復(fù)雜的機(jī)制來調(diào)度和平衡各個(gè)節(jié)點(diǎn)的負(fù)載和并行處理過程。目前一些基于MPP(海量并行處理)技術(shù)的服務(wù)器,往往通過系統(tǒng)級(jí)軟件(如:數(shù)據(jù)庫)來屏蔽這種復(fù)雜性。舉例來說,NCR的Teradata就是基于MPP(海量并行處理)技術(shù)的一個(gè)關(guān)系數(shù)據(jù)庫軟件,基于此數(shù)據(jù)庫來開發(fā)應(yīng)用時(shí),不管后臺(tái)服務(wù)器由多少個(gè)節(jié)點(diǎn)組成,開發(fā)人員所面對(duì)的都是同一個(gè)數(shù)據(jù)庫系統(tǒng),而不需要考慮如何調(diào)度其中某幾個(gè)節(jié)點(diǎn)的負(fù)載。
四、 NUMA(非一致存儲(chǔ)訪問)與MPP(海量并行處理)的區(qū)別
從系統(tǒng)架構(gòu)來看,NUMA(非一致存儲(chǔ))與MPP(海量并行處理)具有許多相似之處:它們都由多個(gè)節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)都具有自己的CPU、內(nèi)存、I/O,節(jié)點(diǎn)之間都可以通過節(jié)點(diǎn)互聯(lián)機(jī)制進(jìn)行信息交互。那么它們的區(qū)別在哪里?通過下面分析NUMA(非一致存儲(chǔ)訪問)和MPP(海量并行處理)服務(wù)器的內(nèi)部架構(gòu)和工作原理不難發(fā)現(xiàn)兩者的差異所在。
1、首先是節(jié)點(diǎn)互聯(lián)機(jī)制不同,NUMA(非一致存儲(chǔ)訪問)的節(jié)點(diǎn)互聯(lián)機(jī)制是在同一個(gè)物理服務(wù)器內(nèi)部實(shí)現(xiàn)的,當(dāng)某個(gè)CPU需要進(jìn)行遠(yuǎn)地內(nèi)存訪問時(shí),它必須等待,這也是NUMA服務(wù)器無法實(shí)現(xiàn)CPU增加時(shí),性能線性擴(kuò)展的主要原因。而MPP(海量并行處理)的節(jié)點(diǎn)互聯(lián)機(jī)制,是在不同的SMP服務(wù)器外部通過I/O實(shí)現(xiàn)的,每個(gè)節(jié)點(diǎn)只訪問本地內(nèi)存和存儲(chǔ),節(jié)點(diǎn)之間的信息交互與節(jié)點(diǎn)本身的處理是并行進(jìn)行的。因此MPP(海量并行處理)在增加節(jié)點(diǎn)時(shí),性能基本上可以實(shí)現(xiàn)線性擴(kuò)展。
2、其次是內(nèi)存訪問機(jī)制不同。在NUMA服務(wù)器內(nèi)部,任何一個(gè)CPU都可以訪問整個(gè)系統(tǒng)的內(nèi)存,但遠(yuǎn)地內(nèi)存訪問的性能,遠(yuǎn)遠(yuǎn)低于本地內(nèi)存訪問,因此在開發(fā)應(yīng)用程序時(shí)應(yīng)該盡量避免遠(yuǎn)地內(nèi)存訪問。而在MPP服務(wù)器中,每個(gè)節(jié)點(diǎn)只訪問本地內(nèi)存,不存在遠(yuǎn)地內(nèi)存訪問的問題。
審核編輯:湯梓紅
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
8965瀏覽量
85087 -
SMP
+關(guān)注
關(guān)注
0文章
71瀏覽量
19614 -
MPP
+關(guān)注
關(guān)注
0文章
23瀏覽量
10568
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論