當前位置:網站首頁>海外服務器的3種體系架構:SMP、NUMA、MPP

海外服務器的3種體系架構:SMP、NUMA、MPP

2022-01-27 10:27:12 華納雲IDC服務商

境外服務器的3種體系架構:SMP、NUMA、MPP!
從系統的體系架構來看,目前的商用服務器大體上可以分為3類:SMP(對稱多處理器)結構、NUMA(非一致存儲訪問)結構和MPP(海量並行處理)結構。這3類系統體系架構的服務器,它們具體的特征描述如下:

一、 SMP(Symmetric Multi-Processor)

所謂“對稱多處理器”結構,是指服務器中多個CPU對稱工作,無主次或從屬關系。各CPU共享相同的物理內存,每個CPU訪問內存中的任何地址所需時間是相同的,因此SMP也被稱為“一致存儲器訪問”結構(UMA:Uniform Memory Access)。對SMP服務器進行擴展的方式,包括增加內存、使用更快的CPU、增加CPU、擴充I/O(槽口數與總線數),以及添加更多的外部設備(通常是磁盤存儲)。

SMP服務器的主要特征是“共享”,系統中所有資源(CPU、內存、I/O等)都是共享的。也正是由於這種特征,導致了SMP服務器的主要問題,那就是它的擴展能力非常有限。對於SMP服務器而言,每一個共享的環節都可能造成SMP服務器擴展時的瓶頸,而最受限制的則是內存。由於每個CPU必須通過相同的內存總線訪問相同的內存資源,因此隨著CPU數量的增加,內存訪問沖突也將隨之增加,最終會造成CPU資源的浪費,使得CPU性能的有效性大大降低。實驗證明,SMP服務器CPU利用率最好的情况是2至4個CPU。

![服務器的3種體系架構:SMP、NUMA、MPP!]

二、NUMA(Non-Uniform Memory Access)

由於SMP服務器在擴展能力上的限制,人們開始探究如何進行有效地擴展從而構建大型系統的技術,NUMA(非一致存儲訪問)就是這種努力下的結果之一。利用NUMA(非一致存儲訪問)技術,可以把幾十個CPU,甚至上百個CPU組合在一個服務器內。
NUMA服務器的基本特征是,具有多個CPU模塊,每個CPU模塊由多個CPU(例如4個)組成,並且具有獨立的本地內存、I/O槽口等。由於其節點之間可以通過互聯模塊進行連接和信息交互,因此每個CPU都可以訪問整個系統的內存。顯然,訪問本地內存的速度,將遠遠快於訪問遠地內存(系統內其它節點的內存)的速度,這也是“NUMA(非一致存儲訪問)”的由來。由於它的這個特點,為了更好地發揮系統性能,開發應用程序時需要盡量减少不同CPU模塊之間的信息交互。利用NUMA(非一致存儲訪問)技術,可以較好地解决原來SMP系統的擴展問題,在一個物理服務器內可以支持上百個CPU。
但NUMA(非一致存儲訪問)技術同樣具有一定的缺陷,由於訪問遠地內存的延時,遠遠超過本地內存,因此當CPU數量增加時,系統性能無法線性增加。例如惠普公司發布Superdome(超級穹頂)服務器時,曾公布了這款服務器與惠普其它UNIX服務器的“相對性能值”,結果發現,64路CPU的Superdome服務器 (NUMA結構)的相對性能值是20,而8路N4000服務器(SMP結構)的相對性能值是6.3。從這個結果可以看到,8倍數量的CPU換來的只是3倍性能的提昇。

三、 MPP(Massive Parallel Processing)

和NUMA(非一致存儲訪問)不同,MPP(海量並行處理)提供了另外一種進行系統擴展的方式,MPP(海量並行處理)由多個SMP服務器通過一定的節點互聯網絡進行連接,協同工作,完成相同的任務,從用戶的角度來看是一個服務器系統。
MPP服務器基本特征是,由多個SMP服務器(每個SMP服務器稱為一個“節點”)通過節點互聯網絡連接而成,每個節點只訪問自己的本地資源(內存、存儲等),是一種“完全無共享/零共享”結構,因而擴展能力最好,理論上其擴展無限制,目前的技術可實現512個節點的互聯,數千個CPU。
在MPP(海量並行處理)系統中,每個SMP(對稱多處理器)節點也可以運行自己的操作系統、數據庫等。但和NUMA(非一致存儲訪問)不同的是,MPP(海量並行處理)系統不存在“异地內存訪問”的問題。換言之,每個節點內的CPU,都不能訪問另一個節點的內存。節點之間的信息交互是通過節點互聯網絡實現的,這個過程一般稱為“數據重分配”。
MPP服務器需要一種複雜的機制來調度和平衡各個節點的負載和並行處理過程。目前一些基於MPP(海量並行處理)技術的服務器,往往通過系統級軟件(如:數據庫)來屏蔽這種複雜性。舉例來說,NCR的Teradata就是基於MPP(海量並行處理)技術的一個關系數據庫軟件,基於此數據庫來開發應用時,不管後臺服務器由多少個節點組成,開發人員所面對的都是同一個數據庫系統,而不需要考慮如何調度其中某幾個節點的負載。
四、 NUMA(非一致存儲訪問)與MPP(海量並行處理)的區別
從系統架構來看,NUMA(非一致存儲)與MPP(海量並行處理)具有許多相似之處:它們都由多個節點組成,每個節點都具有自己的CPU、內存、I/O,節點之間都可以通過節點互聯機制進行信息交互。那麼它們的區別在哪裏?通過下面分析NUMA(非一致存儲訪問)和MPP(海量並行處理)服務器的內部架構和工作原理不難發現兩者的差异所在。
1、首先是節點互聯機制不同,NUMA(非一致存儲訪問)的節點互聯機制是在同一個物理服務器內部實現的,當某個CPU需要進行遠地內存訪問時,它必須等待,這也是NUMA服務器無法實現CPU增加時,性能線性擴展的主要原因。而MPP(海量並行處理)的節點互聯機制,是在不同的SMP服務器外部通過I/O實現的,每個節點只訪問本地內存和存儲,節點之間的信息交互與節點本身的處理是並行進行的。因此MPP(海量並行處理)在增加節點時,性能基本上可以實現線性擴展。
2、其次是內存訪問機制不同。在NUMA服務器內部,任何一個CPU都可以訪問整個系統的內存,但遠地內存訪問的性能,遠遠低於本地內存訪問,因此在開發應用程序時應該盡量避免遠地內存訪問。而在MPP服務器中,每個節點只訪問本地內存,不存在遠地內存訪問的問題。
華納雲,作為一家擁有豐富行業積澱的專業雲計算服務提供商、雲安全服務提供商,致力於為廣大用戶提供的“雲服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器”等雲主機租用服務,具有安全穩定、簡單易用、高可用性、高性價比的特點與優勢,專為廣大企業上雲打造定制,能够滿足企業用戶豐富、多元化的應用場景需求。

版權聲明
本文為[華納雲IDC服務商]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271027118448.html

隨機推薦