近年來,大數(shù)據(jù)行業(yè)的蓬勃發(fā)展除了來自軟件層的持續(xù)迭代與創(chuàng)新,更有賴于計算機硬件環(huán)境的持續(xù)優(yōu)化,尤其是在芯片與操作系統(tǒng)國產(chǎn)化的大趨勢下,硬件升級帶來的性能提升、成本降低、并行處理能力優(yōu)化、存儲與網(wǎng)絡優(yōu)化、安全風險管控等均為數(shù)據(jù)引擎的發(fā)展提供了階梯式進步的空間。在奇點云2024年版《OLAP數(shù)據(jù)庫引擎選型白皮書》中,中科馭數(shù)聯(lián)合奇點云針對Spark+Hive這類大數(shù)據(jù)計算場景下的主力引擎,測評DPU環(huán)境下對比CPU環(huán)境下的性能提升效果。特此節(jié)選該章節(jié)內(nèi)容,與大家共享。
DPU概述
什么是DPU?為什么要關(guān)注DPU?
DPU(Data Processing Unit)是以數(shù)據(jù)為中心構(gòu)造的專用處理器,采用軟件定義技術(shù)路線支撐基礎(chǔ)設施層資源虛擬化,支持存儲、安全、服務質(zhì)量管理等基礎(chǔ)設施層服務。提到DPU,2020年英偉達CEO黃仁勛在其GTC大會上的一句話引起業(yè)界高度關(guān)注:“DPU 將成為未來計算的三大支柱之一,未來的數(shù)據(jù)中心標配是“ CPU + DPU + GPU”。NVIDIA GTC 2020(英偉達2020年GPU技術(shù)大會)上,其CEO黃仁勛的一句話引起了業(yè)界高度關(guān)注:“DPU 將成為未來計算的三大支柱之一,未來的數(shù)據(jù)中心標配是CPU + DPU + GPU?!盌PU的設計思路,是將“CPU處理效率低下、GPU處理不了”的負載卸載到專用DPU,提升整個計算系統(tǒng)的效率、降低整體系統(tǒng)的總體擁有成本(TCO,Total Cost of Ownership),以實現(xiàn)底層基礎(chǔ)設施的“降本增效”。DPU最直接的作用是作為CPU的卸載引擎,接管網(wǎng)絡虛擬化、硬件資源池化等基礎(chǔ)設施層服務,釋放CPU的算力到上層應用。對比CPU、GPU與DPU:
CPU面向應用程序,負責進行系統(tǒng)管理維持軟硬件生態(tài);
GPU面向科學計算,負責進行規(guī)則計算支持數(shù)據(jù)級并行應用;
DPU面向數(shù)據(jù)中心基礎(chǔ)設施,負責進行異構(gòu)計算支撐卸載網(wǎng)絡、存儲、安全業(yè)務等降低“Datacenter Tax”。
圖:CPU、GPU、DPU算力生態(tài)(相關(guān)廠商為不完全列舉)
圖源:《中科馭數(shù)DPU技術(shù)白皮書》
DPU與CPU最大的區(qū)別是,DPU是IO密集型,而GPU是計算密集型。CPU通過間接手段來支持網(wǎng)絡IO,其前端總線帶寬也主要匹配主存(特別是DDR)的帶寬,而非網(wǎng)絡IO的帶寬;DPU的IO帶寬則幾乎可以與網(wǎng)絡帶寬等同,其在支持強IO基礎(chǔ)上具備強算力。DPU的出現(xiàn)并非偶然,而是IT產(chǎn)業(yè)發(fā)展到一定階段的必然選擇。隨著AI、5G等技術(shù)的發(fā)展,端、邊、云各處的計算節(jié)點暴露在了劇增的數(shù)據(jù)量下,CPU的性能增長率與數(shù)據(jù)量增長率出現(xiàn)了“剪刀差”現(xiàn)象。同時,以數(shù)據(jù)為中心的新興應用對數(shù)據(jù)的實時處理提出了越來越高的要求。DPU則可以在數(shù)據(jù)流上就近計算,實現(xiàn)數(shù)據(jù)處理的低時延和高吞吐,更具靈活性與效率。業(yè)內(nèi)越來越多觀點認為,CPU+DPU的異構(gòu)計算解決方案將是應對大數(shù)據(jù)性能瓶頸的新趨勢,DPU也越來越得到數(shù)據(jù)中心運營商和大數(shù)據(jù)軟件廠商的關(guān)注。因此,本書選擇“Spark+Hive”(大數(shù)據(jù)計算場景下的主力引擎)為代表,進行了DPU與CPU環(huán)境下的性能對比測評,為讀者提供參考。
DPU如何實現(xiàn)加速?有哪些應用場景?
針對Spark+Hive的大數(shù)據(jù)計算場景測試,本次測評的技術(shù)方案中除了引入中科馭數(shù)Spark-Race解決方案中最底層的DPU硬件(面向數(shù)據(jù)中心的專用處理器)、HADOS平臺層(異構(gòu)軟件開發(fā)平臺)外,也包含專門針對Spark的DPU加速層,其最核心的能力就是修改查詢計劃樹。簡單來講就是通過 Spark Plugin的機制(作為Spark插件),把 Spark 查詢計劃攔截并下發(fā)給 DPU來執(zhí)行,跳過原生 Spark 不高效的執(zhí)行路徑。整體的執(zhí)行框架仍沿用 Spark 既有實現(xiàn),包括消費接口、資源和執(zhí)行調(diào)度、查詢計劃優(yōu)化、上下游集成等,用戶可以直接使用已有的代碼,“無痛”享受DPU帶來的性能提升。
圖:中科馭數(shù)Spark-Race技術(shù)方案架構(gòu)圖
圖源:《中科馭數(shù)CONFLUX-2200D技術(shù)方案和測試總結(jié)報告》
中科馭數(shù)介紹,DPU環(huán)境對超大業(yè)務表或?qū)挶淼膉oin聯(lián)合查詢場景有突破性的優(yōu)化效果。例如,對于連續(xù)join 4張100萬條數(shù)據(jù)的維表,在CPU模式下全部time out(3600s),而DPU模式下只需數(shù)百秒即可查詢出結(jié)果,計算加速比達到8.4倍。在應對涉及復雜SQL多表查詢的挑戰(zhàn)時,Spark-Race 2.0的優(yōu)勢也尤為突出。因此,本書就“Spark+Hive”引擎(包括高復雜度的數(shù)據(jù)查詢?nèi)蝿請鼍埃?,進行了測試和檢驗。
DPU測試方案說明
測評方案概述
DPU測評方案仍沿用引擎測評模型2.0,在相同環(huán)境與資源配置前提下,分別在底層硬件資源開啟DPU模型與不開啟DPU模式下,執(zhí)行本次測評SQL用例三次,采集SQL執(zhí)行耗時、整機CPU、整機內(nèi)存消耗等核心數(shù)據(jù)進行對比實驗。在測試過程中,除底層硬件資源開啟/關(guān)閉DPU加速功能外,保持DPU和CPU對比實驗環(huán)境的主機與網(wǎng)絡環(huán)境一致,大數(shù)據(jù)計算引擎Hive、Yarn、Spark配置一致,測評工具(即模型2.0)一致,測試表與數(shù)據(jù)一致。
環(huán)境參數(shù)說明
機器資源配置:12C/144G/6T 物理機1臺;2C/144G/3T物理機2臺
測試工具、測試數(shù)據(jù)集、模型維度、指標與引擎測評模型2.0保持一致,具體參數(shù)信息詳見附錄。
中科馭數(shù)DPU性能測試結(jié)果
經(jīng)過對比測試,在數(shù)據(jù)計算和處理場景中,DPU環(huán)境相較于CPU環(huán)境下的查詢性能提升能達到50%-60%,且DPU環(huán)境下整體較CPU環(huán)境的峰值性能資源有優(yōu)化,整機CPU峰值降低24%,內(nèi)存消耗降低50%且波動更平穩(wěn)。
數(shù)據(jù)處理場景下,SQL性能提升50%
在數(shù)據(jù)處理相關(guān)的場景,如TPC-DS標準SQL和行業(yè)典型場景SQL的測試用例下,DPU模式下占優(yōu)的用例數(shù)明顯高于CPU模式下占優(yōu)的用例數(shù),且從相同SQL用例的查詢耗時數(shù)據(jù)來看,DPU模式下的耗時相較于CPU模式有50%-60%的提升。
注:性能對比計算公式,針對執(zhí)行結(jié)果數(shù)據(jù)(CPU-DPU)/CPU
表:DPU模式對比CPU模式下SQL查詢耗時性能結(jié)果表
DPU環(huán)境下的整機CPU峰值高位較CPU環(huán)境降低24%
從測試過程中采集到的整機CPU峰值數(shù)據(jù)來看,DPU環(huán)境下的整機CPU峰值高位比CPU環(huán)境下整機CPU峰值高位低24%左右,配合大數(shù)據(jù)平臺完善的調(diào)度體系,可以實現(xiàn)更多的任務并行。
圖:DPU模式對比CPU模式下CPU峰值表現(xiàn)
DPU環(huán)境較CPU環(huán)境可以降低50%的內(nèi)存配置,內(nèi)存消耗走勢更平穩(wěn)
測試過程中采集到的內(nèi)存消耗數(shù)據(jù)來看,DPU環(huán)境在測試執(zhí)行過程中內(nèi)存消耗走勢更平穩(wěn),且整體峰值相較于CPU環(huán)境更低。從性能優(yōu)化的角度來看,DPU環(huán)境相較于CPU環(huán)境降低50%左右的內(nèi)存配置,即本次實驗DPU環(huán)境內(nèi)存可從128G降為64G。
圖:DPU模式對比CPU模式下內(nèi)存峰值表現(xiàn)
附錄:測評環(huán)境與數(shù)據(jù)詳細說明
以下針對本次測評的測試環(huán)境、資源參數(shù)、測試數(shù)據(jù)集進行說明:
測試環(huán)境 | 操作系統(tǒng):CentOS 7.9芯片:Intel Cascade Lake 3.0 16C/64G |
機器資源配置 | 16C/64G/3T物理機2臺16C/64G/6T物理機1臺 |
數(shù)據(jù)規(guī)模 | 總數(shù)據(jù)量2.8T,213億行數(shù)據(jù) |
數(shù)據(jù)類型 | 業(yè)內(nèi)標準測試數(shù)據(jù):400G
? TPC-DS:300G。數(shù)據(jù)總量22億5873萬,最大表數(shù)據(jù)量8億6400萬 ? PC-H:100G。數(shù)據(jù)總量約8億6604萬,最大表數(shù)據(jù)6億條 各行業(yè)構(gòu)造數(shù)據(jù):合計138億5111萬 ? 泛零售:最大表數(shù)據(jù)10億條,場景合集數(shù)據(jù)條數(shù):24億8284萬 ? 金融:最大表數(shù)據(jù)10億條,26億300萬條 ? 制造:最大表數(shù)據(jù)10億條,75億300萬條 ? 政企:最大表數(shù)據(jù)3億條,7億6172萬條 ? 地產(chǎn):最大表數(shù)據(jù)5億條,5億100萬 標準業(yè)務表構(gòu)造數(shù)據(jù):合計43億2440萬 ? 業(yè)務表:最大表數(shù)據(jù)20億條 ? 寬表:3億條,130+維度 |