亞洲資本網(wǎng) > 資訊 > 熱播 > 正文
NVIDIA攜手騰訊開(kāi)發(fā)和優(yōu)化SparkUCX實(shí)現(xiàn)性能躍升
2023-08-26 20:05:24來(lái)源: 面包芯語(yǔ)

TDW-Spark 是騰訊公司級(jí)數(shù)據(jù)平臺(tái),是騰訊海量數(shù)據(jù)處理平臺(tái)中最核心的模塊,支持百 PB 級(jí)的數(shù)據(jù)存儲(chǔ)和計(jì)算,業(yè)務(wù)涉及公司各個(gè) BG,為騰訊公司提供海量、高效、穩(wěn)定的大數(shù)據(jù)平臺(tái)支撐和決策支持,是騰訊公司最大的離線數(shù)據(jù)處理平臺(tái)。

Spark 網(wǎng)絡(luò)目前的現(xiàn)狀包括大規(guī)模部署 QP 連接數(shù)不夠用,使用 RDMA DC 解決連接數(shù)過(guò)多的問(wèn)題;Spark 不同應(yīng)用場(chǎng)景需要不同的 EP 個(gè)數(shù)、RPC 調(diào)用次數(shù)、Spark UCX 線程數(shù)、Block 大小等,需要聯(lián)合調(diào)配;RDMA 和 TCP 混合部署,需要兼容和故障逃生;以及網(wǎng)絡(luò)帶寬低,需要提升帶寬,降低延時(shí)。

Spark 原始的業(yè)務(wù)問(wèn)題包括:


(相關(guān)資料圖)

通信耗時(shí)占比高:Spark Shuffle 時(shí)間占 Spark 運(yùn)行總時(shí)間的 30% - 40%,造成 Spark 任務(wù)完成時(shí)間長(zhǎng)。

業(yè)務(wù)需求:網(wǎng)絡(luò) IO 和磁盤(pán) IO 是 Spark Shuffle 的瓶頸,需要提高通信效 率,提高計(jì)算效率。

降本增效:五萬(wàn)張已經(jīng)部署的 NVIDIA ConnectX-5 網(wǎng)卡需要提高性能利用率,切換到 RDMA,提高業(yè)務(wù)帶寬。

為了應(yīng)對(duì)上述問(wèn)題及挑戰(zhàn),騰訊進(jìn)行了 Spark RDMA 大規(guī)模部署網(wǎng)絡(luò)的工作,主要從兩個(gè)方面著手:Spark RDMA 網(wǎng)絡(luò)部署和優(yōu)化,以及 Spark UCX / UCX 性能優(yōu)化。

具體部署調(diào)優(yōu)步驟:

搭建 37 節(jié)點(diǎn) NVIDIA ConnectX-5 網(wǎng)卡和 26 節(jié)點(diǎn) NVIDIA ConnectX-6 網(wǎng)卡 Spark 環(huán)境,部署 Spark、Spark UCX、UCX 代碼進(jìn)行長(zhǎng)穩(wěn)調(diào)優(yōu)。

基于 GroupByTest 和現(xiàn)網(wǎng) Spark 業(yè)務(wù)流量,在 UCX、Spark UCX、Spark 三個(gè)層次調(diào)優(yōu)對(duì)比 DC、RC 和 TCP 效果。

優(yōu)化 Spark UCX、UCX 代碼,根據(jù) Spark 業(yè)務(wù)調(diào)優(yōu)網(wǎng)卡和交換機(jī)配置。

通過(guò)在 NVIDIA ConnectX-5 和 NVIDIA ConnectX-6 Dx bond 引入 DCT,提升 Spark 業(yè)務(wù)帶寬利用率。

RDMA 和 TCP 網(wǎng)絡(luò)共存的情況下,保障長(zhǎng)穩(wěn)運(yùn)行和 RDMA 故障逃生。

RDMA 部署優(yōu)化完成情況:

大規(guī)模:使用 DCT 技術(shù)共享 QP 連接,解決了大規(guī)模 QP 不夠用 的問(wèn)題。大規(guī)模仿真下 Spark 應(yīng)用 RDMA 網(wǎng)絡(luò)滿(mǎn)足預(yù)期。

Spark 應(yīng)用和網(wǎng)絡(luò)聯(lián)合調(diào)優(yōu):實(shí)現(xiàn)了最優(yōu)的網(wǎng)卡和交換機(jī)配置,以 及 Spark 任務(wù)配置,降低了 15% - 20% 左右的讀完成時(shí)間。

故障逃生:Spark UCX 和 UCX 代碼層面實(shí)現(xiàn)了 RDMA 和 TCP 通道備份。確保 RDMA 故障逃生 TCP,保證穩(wěn)定運(yùn)行。

穩(wěn)定性保證:開(kāi)發(fā)了驅(qū)動(dòng)版本檢測(cè)、網(wǎng)卡配置和檢測(cè)、自動(dòng)化安裝升級(jí)檢測(cè)功能。開(kāi)發(fā)了測(cè)試網(wǎng)絡(luò)性能模塊,保證 Spark RDMA 各層帶寬和延時(shí)滿(mǎn)足預(yù)期。

1. 參數(shù)調(diào)優(yōu):通過(guò)調(diào)整 maxReqsInFlight、numListenerThreads 等 Spark / Spark UCX 參數(shù),提升任務(wù)執(zhí)行效率,獲得最好傳輸速率,發(fā)揮最大系統(tǒng)效能。

2. CPU 利用率優(yōu)化:?jiǎn)⒂?sleep / wakeup 特性,替代 busy waiting 模式。讓出 CPU 給 Spark 計(jì)算任務(wù),減少了 CPU 浪費(fèi),體現(xiàn)了 RDMA 的優(yōu)勢(shì)。

3. 網(wǎng)路 IO 優(yōu)化:網(wǎng)路 IO 由阻塞模型改為非阻塞模型,數(shù)據(jù)接收由同步等待改為異步通知。避免了因?yàn)榫W(wǎng)路 IO 等待而 阻塞計(jì)算任務(wù)執(zhí)行,提高了每個(gè)線程的任務(wù)吞吐量,提升了收發(fā)效率和帶寬。

圖 2:網(wǎng)絡(luò) IO 優(yōu)化

4. 調(diào)度優(yōu)化:worker 的調(diào)度方式改用全局 round-robin (RR) 調(diào)度模式,替代原有的按照 thread id 選擇 worker 的 方式。避免了 thread id 不連續(xù)引起的多個(gè)線程選擇同一 worker 的問(wèn)題。

5. 數(shù)據(jù)競(jìng)爭(zhēng)優(yōu)化:將 send / receive / progress 方法打包至獨(dú)立線程運(yùn)行,保證每個(gè) worker 資源僅被單個(gè)線程 訪問(wèn) / 修改,避免了數(shù)據(jù)競(jìng)爭(zhēng),提升了線程運(yùn)行效率。

1. 參數(shù)調(diào)優(yōu):使用 DC 替換 RC 模式,提升傳輸帶寬,減少系統(tǒng) CPU、內(nèi)存資源消耗。開(kāi)啟 CQE zipping 和 PCI relax ordering 減少 PCI 負(fù)載。調(diào)整 UCX_ZCOPY_THRESH、UCX_RNDV_THRESH 和 UCX_RND_SCHEME,獲得穩(wěn)定高速的傳輸帶寬。

2. 網(wǎng)絡(luò)負(fù)載均衡優(yōu)化:隨機(jī)化 UDP 源端口取值,減輕由于固定端口,交換機(jī)對(duì) 5 元組哈希得到相同出端口而引起的 負(fù)載不均衡問(wèn)題,優(yōu)化網(wǎng)絡(luò)傳輸帶寬。

經(jīng)過(guò)部署調(diào)優(yōu),NVIDIA ConnectX-6 環(huán)境 RDMA 傳輸性能比 TCP 平均有 18% 的提升;NVIDIA ConnectX-5 環(huán)境大部分場(chǎng)景 RDMA 傳輸性能比 TCP 平均有 16% 的提升??紤]到 Spark 任務(wù)有計(jì)算和本地 write,所以對(duì) Spark 任務(wù)整體完成時(shí)間大概有 8% 的性能提升。

NVIDIA ConnetX-6 環(huán)境 RDMA 性能提升明顯(RDMA read 通信 18% 左右提升,整體完成時(shí)間 8% 左右提升),可以大規(guī)?;叶炔渴?Spark 業(yè)務(wù)真實(shí)流量。NVIDIA ConnectX-5 環(huán)境大部分場(chǎng)景性能平均提升(RDMA read 通信 16% 左右提升,整體完成時(shí)間 6% 左右提升),部分場(chǎng)景 RDMA 性能較差還需要調(diào)測(cè)優(yōu)化,可以灰度部署 Spark 業(yè)務(wù),繼續(xù)優(yōu)化還有提升空間。

圖 5:ConnectX-5 網(wǎng)卡 37 臺(tái)規(guī)模 RDMA 完成時(shí)間比 TCP 低 18% 左右

圖 6:20 臺(tái)規(guī)模 Spark 業(yè)務(wù)灰度測(cè)試,RDMA read 平均降低 20% 左右

Spark 項(xiàng)目通過(guò)遠(yuǎn)程直接內(nèi)存訪問(wèn)(RDMA)技術(shù)解決網(wǎng)絡(luò)傳輸中服務(wù)器數(shù)據(jù)處理延遲問(wèn)題,為騰訊 Spark 大數(shù)據(jù)平臺(tái)業(yè)務(wù)提供高帶寬、低延時(shí)的通信。該技術(shù)已在二十多臺(tái)騰訊 Spark 大數(shù)據(jù)平臺(tái)服務(wù)器完成灰度測(cè)試,運(yùn)行穩(wěn)定且 Spark Shuffle(數(shù)據(jù)讀取速率)時(shí)間平均降低 15% - 18% 左右,減少了 Spark 任務(wù)完成時(shí)間(大約 8% 左右),節(jié)約了服務(wù)器資源。計(jì)劃逐步部署到數(shù)千臺(tái) Spark 服務(wù)器。

關(guān)鍵詞:

專(zhuān)題新聞
  • 穢土轉(zhuǎn)生術(shù)式(穢土轉(zhuǎn)生之術(shù)有哪些弱點(diǎn))
  • 港媒:受日本核污染水排海影響,香港超市食鹽被搶購(gòu)一空
  • 中國(guó)氣象局啟動(dòng)暴雨四級(jí)應(yīng)急響應(yīng)
  • 10家券商半年凈利增逾50% 政策組合拳提升券業(yè)估值中樞
  • 【機(jī)構(gòu)調(diào)研記錄】百嘉基金調(diào)研拓斯達(dá)、祥鑫科技
  • 營(yíng)口出入境檢驗(yàn)檢疫局(關(guān)于營(yíng)口出入境檢驗(yàn)檢疫局簡(jiǎn)述)
最近更新

京ICP備2021034106號(hào)-51

Copyright © 2011-2020  亞洲資本網(wǎng)   All Rights Reserved. 聯(lián)系網(wǎng)站:55 16 53 8 @qq.com