大數(shù)據(jù)“復活”記
1566
2025-03-31
現(xiàn)代計算機的CPU處理速度比它的主存速度快不少。而在早期的計算和數(shù)據(jù)處理中,CPU通常比它的主存慢。但是隨著超級計算機的到來,處理器和存儲器的性能在二十世紀六十年代達到平衡。自從那個時候,CPU常常對數(shù)據(jù)感到饑餓而且必須等待存儲器的數(shù)據(jù)到來。為了解決這個問題,很多在80和90年代的超級計算機設計專注于提供高速的存儲器訪問,使得計算機能夠高速地處理其他系統(tǒng)不能處理的大數(shù)據(jù)集。
限制訪問存儲器的次數(shù)是現(xiàn)代計算機提高性能的要點。對于商品化的處理器,這意味著設置數(shù)量不斷增長的高速緩存和使用不斷變得精巧復雜的算法以防止“緩存數(shù)據(jù)未命中(cache missed)”。但是操作系統(tǒng)和應用程序大小的明顯增長壓制了前述的緩存技術(shù)造成的提升。沒有使用NUMA的多處理器系統(tǒng)使得問題更糟糕。因為同一時間只能有一個處理器訪問計算機的存儲器,所以在一個系統(tǒng)中可能存在多個處理器在等待訪問存儲器。
NUMA通過提供分離的存儲器給各個處理器,避免當多個處理器訪問同一個存儲器產(chǎn)生的性能損失來試圖解決這個問題。對于涉及到分散的數(shù)據(jù)的應用(在服務器和類似于服務器的應用中很常見),NUMA可以通過一個共享的存儲器提高性能至n倍,而n大約是處理器(或者分離的存儲器)的個數(shù)。
當今數(shù)據(jù)計算領域的主要應用程序和模型可大致分為聯(lián)機事務處理(OLTP)、決策支持系統(tǒng)(DSS)和企業(yè)信息通訊(BusinessCommunications)三大類。而小型獨立服務器模式、SMP(對稱多處理)模式、MPP(大規(guī)模并行處理)模式和NUMA模式,則是上述3類系統(tǒng)設計人員在計算平臺的體系結(jié)構(gòu)方面可以采用的選擇。
SMP模式將多個處理器與一個集中的存儲器相連。在SMP模式下,所有處理器都可以訪問同一個系統(tǒng)物理存儲器,這就意味著SMP系統(tǒng)只運行操作系統(tǒng)的一個拷貝。因此SMP系統(tǒng)有時也被稱為一致存儲器訪問(UMA)結(jié)構(gòu)體系,一致性意指無論在什么時候,處理器只能為內(nèi)存的每個數(shù)據(jù)保持或共享唯一一個數(shù)值。很顯然,SMP的缺點是可伸縮性有限,因為在存儲器接口達到飽和的時候,增加處理器并不能獲得更高的性能。
MPP模式則是一種分布式存儲器模式,能夠?qū)⒏嗟奶幚砥骷{入一個系統(tǒng)的存儲器。一個分布式存儲器模式具有多個節(jié)點,每個節(jié)點都有自己的存儲器,可以配置為SMP模式,也可以配置為非SMP模式。單個的節(jié)點相互連接起來就形成了一個總系統(tǒng)。MPP體系結(jié)構(gòu)對硬件開發(fā)商頗具吸引力,因為它們出現(xiàn)的問題比較容易解決,開發(fā)成本比較低。由于沒有硬件支持共享內(nèi)存或高速緩存一致性的問題,所以比較容易實現(xiàn)大量處理器的連接。
可見,單一SMP模式與MPP模式的關鍵區(qū)別在于,在SMP模式中,數(shù)據(jù)一致性是由硬件專門管理的,這樣做比較容易實現(xiàn),但成本較高;在MPP模式中,節(jié)點之間的一致性是由軟件來管理,因此,它的速度相對較慢,但成本卻低得多。
NUMA模式,也采用了分布式存儲器模式,不同的是所有節(jié)點中的處理器都可以訪問全部的系統(tǒng)物理存儲器。然而,每個處理器訪問本節(jié)點內(nèi)的存儲器所需要的時間,可能比訪問某些遠程節(jié)點內(nèi)的存儲器所花的時間要少得多。換句話說,也就是訪問存儲器的時間是不一致的,這也就是這種模式之所以被稱為“NUMA”的原因。簡而言之,NUMA既保持了SMP模式單一操作系統(tǒng)拷貝、簡便的應用程序編程模式以及易于管理的特點,又繼承了MPP模式的可擴充性,可以有效地擴充系統(tǒng)的規(guī)模。這也正是NUMA的優(yōu)勢所在。
從架構(gòu)來看,NUMA 與 MPP 具有許多相似之處:它們都由多個節(jié)點組成,每個節(jié)點都具有自己的 CPU、內(nèi)存、I/O,節(jié)點之間都可以通過節(jié)點互聯(lián)機制進行信息交互。那么它們的區(qū)別在哪里?首先是節(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)存訪問的問題。
眾所周知,典型的數(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ù)的關系數(shù)據(jù)庫系統(tǒng)來屏蔽節(jié)點之間負載平衡與調(diào)度的復雜性。另外,這種并行處理能力也與節(jié)點互聯(lián)網(wǎng)絡有很大的關系。顯然,適應于數(shù)據(jù)倉庫環(huán)境的 MPP 服務器,其節(jié)點互聯(lián)網(wǎng)絡的 I/O 性能應該非常突出,才能充分發(fā)揮整個系統(tǒng)的性能。但這并不是絕對的,性能的好壞由很多因素組成,比如Oracle Exadata, 它沒有使用 MPP 架構(gòu),但性能是相當?shù)膬?yōu)越了。所以單從服務器的一個方面分析性能有一定的片面性,而現(xiàn)在的趨勢是整體的從多方面(包括軟件層面)優(yōu)化服務器的性能。
————————————————
本文內(nèi)容整合自:https://baike.baidu.com/item/NUMA/6906025?fr=aladdin和https://blog.csdn.net/m0_37253968/article/details/103274611
分布式
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。