那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于DPU云盤掛載的Spark優化解決方案

DPU高性能云異構算力解決方案 ? 來源:DPU高性能云異構算力解決 ? 作者:DPU高性能云異構算 ? 2024-08-14 15:39 ? 次閱讀

1. 方案背景和挑戰

Apache Spark,作為當今大數據處理領域的佼佼者,憑借其高效的分布式計算能力、內存計算優化以及強大的生態系統支持,已牢固確立其在業界的標桿地位。Spark on Kubernetes(簡稱K8s)作為Spark與Kubernetes這一領先容器編排平臺深度融合的產物,不僅繼承了Spark的強大數據處理能力,還充分利用了Kubernetes在資源管理、服務發現和彈性伸縮方面的優勢,正逐步引領大數據處理邁向更加靈活、高效的新紀元。

與此同時,隨著云計算技術的飛速發展,NVMe/TCP云盤作為一種創新的高性能存儲解決方案,憑借其在低延遲、高吞吐量以及易于集成到現代云架構中的特點,日益受到大規模數據中心和云環境用戶的青睞。這種存儲方案通過TCP/IP協議實現遠程NVMe設備的直接訪問,極大地拓展了數據存取的邊界,但也隨之帶來了特定的技術挑戰。

具體而言,NVMe/TCP云盤在利用TCP/IP協議進行數據交互時,不可避免地涉及到了復雜的數據包處理流程,包括用戶態與內核態之間的頻繁數據拷貝、網絡報文的接收、峰值流量的處理以及協議棧的深入解析等。這一系列操作大幅增加了CPU的負擔,尤其是在高并發、大數據量場景下,大量CPU資源被非業務核心的數據包處理工作所占用,導致CPU資源利用率低下,甚至成為性能瓶頸。

當Apache Spark試圖掛載并利用NVMe/TCP云盤進行大規模數據處理時,上述挑戰便顯得尤為突出:

1、Spark作業在執行過程中,若頻繁遭遇CPU資源被TCP/IP協議棧處理所擠占的情況,不僅會直接限制Spark任務的處理速度,還可能導致任務執行延遲增加,進而影響整個數據處理流水線的吞吐率和效率。

2、由于CPU資源的爭奪,Spark原本有望進一步提升的磁盤I/O性能也受到了限制,難以充分發揮NVMe/TCP云盤應有的高性能潛力。

為了解決Spark在掛載NVMe/TCP云盤時面臨的CPU資源占用過高和磁盤吞吐性能受限的問題,亟需探索并實施一系列優化策略和技術方案。這可能包括但不限于:采用更高效的數據傳輸協議或技術(如RDMA),以減少CPU在數據拷貝和網絡處理上的負擔,提升數據傳輸性能;優化Spark作業的調度與執行策略,以更加合理地分配CPU資源;以及針對NVMe/TCP云盤特性進行專門的性能調優,如調整TCP窗口大小、優化網絡隊列配置等。

RDMA技術允許數據在遠程主機的內存之間直接傳輸,無需經過CPU處理,從而極大地降低了數據傳輸的延遲并減少了CPU的負載。這一特性直接解決了Spark和Kubernetes集群中,尤其是在使用NVMe-oF云盤時,因網絡傳輸效率低下而可能導致的性能瓶頸問題。

本方案通過DPU實現NVMe/RDMA的云盤掛載,從而提升Spark在云環境下處理大數據時的整體性能和效率。

2. 整體方案概述

本方案采用云原生架構,Spark采用Spark on Kubernetes部署模式,并且引入DPU為集群之上的容器提供存儲服務的卸載和加速,融合了云原生架構與高性能存儲的優勢。方案整體架構如下圖所示:

wKgZoma8W3eAaz66AACXs75_wiw392.png

l 存儲集群把NVMe存儲設備以裸盤方式部署,計算節點通過硬件模擬向宿主機提供標準的nvme/virtio塊設備,對存儲協議的處理都卸載到DPU,提供硬件加速的NVMe over RDMA能力。

l K8S平臺通過yusur-csi存儲插件提供基于DPU的云盤掛載能力。

l 將Spark應用部署在K8S集群之上,Spark Pod掛載DPU硬件加速的NVMe/RDMA云盤,以更低的資源消耗獲得更高的讀寫效率。

3. 測試方法和結果

3.1. 軟件環境

軟件包/工具/數據集列表

名稱 版本 來源 備注
Spark 3.4.2 社區開源項目 開源大數據處理框架
Java 17.0.10 (Eclipse Adoptium) 開源項目Spark自帶 Spark鏡像內置的依賴環境
containerd 1.6.21 社區開源項目 容器運行時
Kubernetes v1.26.5 社區開源項目 開源容器編排框架
yusur-csi V6.0 自研 Kubernetes存儲插件,為裸金屬提供云盤掛載功能。

3.2. 測試方案

Spark SQL是Spark開發常用的編程接口,本方案使用Spark SQL運行一個聚合查詢,SQL語句如下:

select count(1) from tblong where id=1

Spark使用Spark on Kubernetes部署模式,為了數據加載的完整性,關閉Spark SQL的謂詞下推機制。輸入數據是Parquet文件,包含一個Long類型的數據列,所有輸入文件大小之和是45G

Spark 分配4個Executor(Pod),每個Executor分配8個core,Spark核心參數如下

$SPARK_HOME/bin/spark-submit
--master k8s://https://10.0.151.186:6443
--deploy-mode cluster
--driver-cores 4
--driver-memory 40G
--executor-cores 8
--executor-memory 40G
--num-executors 4
--conf spark.executor.memoryOverhead=2G
--conf spark.dynamicAllocation.enabled=false
--conf spark.sql.parquet.filterPushdown=false
--conf spark.kubernetes.namespace=spark
--conf spark.kubernetes.authenticate.driver.serviceAccountName=spark
--conf spark.kubernetes.container.image=harbor.yusur.tech/bigdata/spark:spark3.2.0-hadoop3

3.3. 節點網絡拓撲

測試環境包含一個存儲節點和一個計算節點,各有一個DPU加速卡,兩個節點之間通過100G交換機連接。測試環境節點網絡拓撲如下圖所示:

wKgZoma8W76AGQ_lAABS23DXs7U002.png

對于NVMe/TCP云盤,DPU使用TCP協議連接存儲服務,不卸載存儲協議的處理,這種情況下,DPU充當普通網卡。

對于NVMe/RDMA云盤,DPU使用RDMA協議連接存儲服務,把存儲協議卸載到DPU硬件。

3.4. 關注指標

本方案重點關注CPU資源的使用率,包括系統內核CPU使用率和用戶態CPU使用率。

指標名稱 指標描述
數據加載時間(單位:秒) 對于Spark SQL任務,對應Scan算子時間
E2E時間(單位:秒) 從數據加載開始到結果輸出結束的時間間隔
磁盤吞吐量(單位:MB/s) 磁盤在單位時間內能夠讀寫的數據總量,通過fio工具測試
內核態CPU使用率 主機CPU運行在用戶態的時間占比,通過top命令采集
用戶態CPU使用率 主機CPU運行在用戶態的時間占比,通過top命令采集

3.5. 測試結果

3.4.1性能數據

Spark 分配4個Executor(Pod),每個Executor分配8個core。 相比于掛載云盤,掛載NVMe/RDMA云盤,Spark數據吞吐性能提升22.2%,數據加載時間縮短18.2%。

不同存儲云盤下,數據加載時間及E2E時間對比如下圖所示:

wKgaoma8Xi2AXyKyAACP0PwoVdM504.png

Spark磁盤吞吐性能對比如下圖所示:

wKgaoma8XieAOAbPAACdKMbw78A961.png

具體數據見下表:

對比指標 NVMe/TCP云盤 DPU NVMe/RDMA云盤
數據加載時間(秒) 11 9
E2E時間(秒) 12 10
磁盤吞吐(MB/s) 4179.78 5108.62

3.4.2資源使用數據

運行過程資源監控圖如下圖所示:

wKgaoma8W8mABuHpAAMcxx67Zuk654.png

從監控圖發現內存使用波動較少,本方案內核態CPU使用率平均減少17.14%,用戶態CPU使用率平均增加7.39%,平均CPU資源消耗如下圖所示:

wKgZoma8XhSAULBSAACLTG1b0cs903.png

平均CPU資源占用數據如下表所示

存儲云盤類型 sys_cpu(均值) user_cpu(均值) 合計
NVMe/TCP云盤 12.66% 26.25% 38.91%
NVMe/RDMA云盤 10.49% 28.19% 38.68%

3.4.3測試數據分析

本次試驗通過測試Spark SQL讀取Parquet文件做聚合計算,分配4個Executor(Pod),每個Executor分配8個core,也就是說實際運行過程中并行度為32。

相比于掛載NVMe/TCP云盤,掛載NVMe/RDMA云盤可使Spark數據吞吐性能提升22.2%,數據加載時間縮短18.2%。

從運行過程中的資源監控圖來看,掛載NVMe/RDMA云盤,Spark消耗更少的內核態CPU資源。內核態CPU資源使用率減少17.14%,但數據加載性能更高,因此占用了更多的用戶態CPU資源。這與RDMA本身的特點是相符的,RDMA 將協議棧的實現下沉至DPU硬件,繞過內核直接訪問遠程內存中的數據。

綜合用戶態CPU和內核態CPU使用情況,不管是掛載NVMe/TCP云盤還是掛載NVMe/RDMA云盤,Spark的資源消耗都在一個水平上,但是掛載NVMe/RDMA云盤時,Spark運行速度更快,對資源占用時間更短,所以整體來看,本方案事實上節省了系統CPU資源。

4. 優勢總結

本方案通過引入DPU(數據處理單元)實現NVMe/RDMA云盤掛載,以優化Spark在云環境下處理大數據的性能和效率,其優勢可以總結為以下幾點:

1、顯著提升數據吞吐性能:

采用NVMe/RDMA技術相比于傳統的NVMe/TCP,能夠大幅提升數據在云環境中的傳輸速度。本方案測試結果顯示,數據吞吐性能提升了22.2%,這意味著Spark作業在處理大規模數據集時能夠更快地讀取和寫入數據,從而顯著減少數據處理的總時間。

2、大幅縮短數據加載時間:

數據加載是大數據處理流程中的關鍵瓶頸之一。通過NVMe/RDMA云盤的掛載,數據加載時間縮短了18.2%,這對于需要頻繁訪問大量數據集的Spark應用來說尤為重要,可以顯著提高應用的響應速度和整體效率。

3、減少非業務負載對CPU資源的占用:

NVMe/RDMA技術通過減少數據傳輸過程中對CPU的依賴,將數據傳輸的負載從主機CPU轉移到DPU上。這不僅降低了主機CPU的負載,還使得CPU資源能夠更多地用于數據處理等核心業務邏輯,從而提升整體的系統效率和性能。

4、優化資源利用率:

由于數據加載和傳輸速度的提升,Spark作業可以更快地完成數據處理任務,從而提高了云資源的利用率。云環境中的資源(如CPU、內存、存儲)通常按使用量計費,因此更快的處理速度意味著更低的成本。

綜上所述,本方案通過引入DPU實現NVMe/RDMA云盤掛載,為Spark在云環境下處理大數據提供了全面的性能優化,顯著提升了數據吞吐性能、縮短了數據加載時間、減少了CPU資源占用,并優化了系統的資源利用率。

本方案來自于中科馭數軟件研發團隊,團隊核心由一群在云計算、數據中心架構、高性能計算領域深耕多年的業界資深架構師和技術專家組成,不僅擁有豐富的實戰經驗,還對行業趨勢具備敏銳的洞察力,該團隊致力于探索、設計、開發、推廣可落地的高性能云計算解決方案,幫助最終客戶加速數字化轉型,提升業務效能,同時降低運營成本。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 云計算
    +關注

    關注

    39

    文章

    7856

    瀏覽量

    137850
  • DPU
    DPU
    +關注

    關注

    0

    文章

    368

    瀏覽量

    24257
  • SPARK
    +關注

    關注

    1

    文章

    105

    瀏覽量

    19970
  • 云原生
    +關注

    關注

    0

    文章

    252

    瀏覽量

    7983
收藏 人收藏

    評論

    相關推薦

    《數據處理器:DPU編程入門》DPU計算入門書籍測評

    實踐 最后一部分是數據加速應用的落地: 基于各個平臺的算力解決方案 推薦的存儲解決方案 邊緣計算方案 網絡平臺與融合加速技術 本書不能幫你完全入門DOCA和相關的DPU開發技術,但是能
    發表于 12-24 10:54

    IaaS+on+DPU(IoD)+下一代高性能算力底座技術白皮書

    、VMware、Palo Alto 等公司紛紛推出相關解決方案。這些方案背后共同的本質思想是:將計算的 IaaS 層組件從服務器側卸載后圍繞 DPU 構筑高性能算力底座,與 AWS、
    發表于 07-24 15:32

    AT91SAM9X35-EK評估套件工業應用優化解決方案

    基于ARM926EJ-S內核微處理器單元,運行頻率為400MHz,具有連接外設,高數據帶寬架構,使其成為工業應用的優化解決方案
    發表于 04-01 06:51

    碼域翻轉干擾所帶來的問題及PCB優化解決方案介紹

    ADC 采集小信號功率不準確。本文以 ADS58H40 為例,分析了碼域翻轉干擾所帶來的問題,并提供了PCB 優化解決方案
    發表于 06-21 06:25

    mysql數據庫優化方案

    MySQL千萬級大表優化解決方案
    發表于 08-19 12:18

    機械自動化解決方案

    機械自動化解決方案
    發表于 11-14 22:55 ?480次下載

    23G互操作優化解決方案

    本文從23G互操作優化的背景出發,分析了當前23G互操作優化的不足之處,并提出了百林通信的23G互操作優化解決方案
    發表于 12-02 14:58 ?1474次閱讀
    23G互操作<b class='flag-5'>優化解決方案</b>

    工業自動化解決方案通報

    ADI公司與工業客戶已有40余年的良好合作經驗,能定義、開發和部署完整的信號鏈解決方案,并能針對具體工業應用優化解決方案。ADI公司歷來支持工業產品的長使用周期,承諾維持制
    發表于 12-12 11:52 ?86次下載
    工業自動<b class='flag-5'>化解決方案</b>通報

    關于Linux系統如何掛載數據

    遠程SSH登錄上CentOS或Debian及Ubuntu等系列的Linux服務器后,進行如下操作 提醒:掛載操作會清空數據,請確認掛載無數據或者未使用.
    發表于 04-23 13:39 ?1062次閱讀

    linux掛載u的方法

    linux掛載U具體步驟如下:
    發表于 05-19 09:14 ?2698次閱讀
    linux<b class='flag-5'>掛載</b>u<b class='flag-5'>盤</b>的方法

    新思科技正式推出全新DesignDash設計優化解決方案

    新思科技(Synopsys)近日正式推出全新DesignDash設計優化解決方案,以擴展其EDA數據分析產品組合,通過機器學習技術來利用此前未發掘的設計分析結果,從而提高芯片設計的生產力。
    的頭像 發表于 06-06 15:30 ?1241次閱讀

    機智廚房電器智能化解決方案

    勞動課來了,智能廚電產品或將迎來發展新機遇。機智軟硬件一體化解決方案能夠幫助企業快速低成本實現廚房電器產品智能化升級,支持菜譜功能開發、語音識別控制等。
    的頭像 發表于 06-12 16:11 ?1597次閱讀

    Spark基于DPU Snappy壓縮算法的異構加速方案

    Spark 在某些工作負載方面表現得更加優越。換句話說,Spark 啟用了內存分布數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。Spark SQL是
    的頭像 發表于 03-26 17:06 ?865次閱讀
    <b class='flag-5'>Spark</b>基于<b class='flag-5'>DPU</b> Snappy壓縮算法的異構加速<b class='flag-5'>方案</b>

    Spark基于DPU的Native引擎算子卸載方案

    1.背景介紹 Apache Spark(以下簡稱Spark)是一個開源的分布式計算框架,由UC Berkeley AMP Lab開發,可用于批處理、交互式查詢(Spark SQL)、實時流處理
    的頭像 發表于 06-28 17:12 ?764次閱讀
    <b class='flag-5'>Spark</b>基于<b class='flag-5'>DPU</b>的Native引擎算子卸載<b class='flag-5'>方案</b>

    硬盤掛載到新服務器,怎么恢復數據?

    硬盤掛載到新服務器并恢復數據,需先獲取掛載權限和配置信息,登錄新服務器管理控制臺選擇并掛載硬盤到指定點,檢查
    的頭像 發表于 12-01 22:27 ?239次閱讀
    网络棋牌赌博| 做生意摆放什么会招财| 百家乐官网仿水晶筹码| 澳门网络游戏| 大发888-大发娱乐城| 澳门玩百家乐的玩法技巧和规则 | 真人百家乐官网赌博技巧| 林西县| 理塘县| 克什克腾旗| 百家乐官网销售视频| 进贤县| 和田市| 百家乐官网怎么玩了| 百家乐官网出千原理| 百家乐官网怎么样玩| 凯旋门百家乐官网技巧| 大发888注册送彩金| 百家乐不锈钢| 威尼斯人娱乐城最新网址| 三公百家乐在哪里可以玩| 威尼斯人娱乐棋牌下载| 大发888 com| 投注网| 百家乐官网如何看牌| 百家乐官网最新首存优惠| 超级百家乐官网2龙虎斗| 百家乐官网7杀6| 夜总会百家乐官网的玩法技巧和规则 | 百家乐智能软件| 博彩百家乐的玩法技巧和规则| 西游记百家乐娱乐城| 大发888娱乐场 d188| 澳门凯旋门娱乐城| 南靖县| 腾飞国际娱乐城| 缅甸百家乐官网博彩真假| 深圳百家乐官网的玩法技巧和规则 | 百家乐技巧心| 德州扑克网站| 饶阳县|