日日碰狠狠躁久久躁96avv-97久久超碰国产精品最新-婷婷丁香五月天在线播放,狠狠色噜噜色狠狠狠综合久久 ,爱做久久久久久,高h喷水荡肉爽文np肉色学校

睿治

智能數(shù)據(jù)治理平臺(tái)

睿治作為國(guó)內(nèi)功能最全的數(shù)據(jù)治理產(chǎn)品之一,入選IDC企業(yè)數(shù)據(jù)治理實(shí)施部署指南。同時(shí),在IDC發(fā)布的《中國(guó)數(shù)據(jù)治理市場(chǎng)份額》報(bào)告中,連續(xù)四年蟬聯(lián)數(shù)據(jù)治理解決方案市場(chǎng)份額第一。

任務(wù)全鏈路診斷,助力云音樂(lè)大規(guī)模計(jì)算資源優(yōu)化

時(shí)間:2023-05-16來(lái)源:億信瀏覽數(shù):257

計(jì)算資源vcore的優(yōu)化不同于內(nèi)存優(yōu)化,vcore嚴(yán)重影響著任務(wù)的運(yùn)行效率。如何在保證任務(wù)運(yùn)行效率不變甚至提高的情況下,能進(jìn)一步優(yōu)化vcore的利用率?我們需要對(duì)任務(wù)做出全面的分析,給出不同的優(yōu)化策略。這篇文章主要圍繞任務(wù)運(yùn)行階段,介紹任務(wù)全鏈路診斷針對(duì)任務(wù)不同檢查項(xiàng)異常給予的優(yōu)化策略,以及帶來(lái)的收益。

對(duì)于大數(shù)據(jù)離線任務(wù)來(lái)說(shuō),由于流轉(zhuǎn)服務(wù)節(jié)點(diǎn)較多、技術(shù)棧要求較高、數(shù)據(jù)采集難度大、指標(biāo)復(fù)雜難懂等一系列原因,造成業(yè)務(wù)方對(duì)任務(wù)的掌控力非常差:不清楚異常出現(xiàn)在哪;不確定任務(wù)是否可以優(yōu)化、如何優(yōu)化。

目前大數(shù)據(jù)基礎(chǔ)設(shè)施組開發(fā)了一款EasyEagle產(chǎn)品,并通過(guò)其中的任務(wù)全鏈路診斷模塊,幫助用戶去解決上述的問(wèn)題。

本篇文章大致介紹任務(wù)全鏈路診斷模塊,通過(guò)部分案例和數(shù)據(jù),幫助用戶更好的了解該功能模塊能帶來(lái)什么樣的收益,以及如何簡(jiǎn)單的使用。本篇文章僅涉及計(jì)算資源vcore的優(yōu)化,對(duì)于異常定位會(huì)有其他文章進(jìn)行介紹。

1什么是任務(wù)全鏈路診斷?

任務(wù)全鏈路,指的是任務(wù)從提交到產(chǎn)出結(jié)束,整個(gè)生命周期內(nèi)流轉(zhuǎn)的各個(gè)服務(wù)、節(jié)點(diǎn)的集合。

診斷,指的是將上述整個(gè)鏈路,按照已有的運(yùn)維經(jīng)驗(yàn)和特征進(jìn)行抽象劃分,細(xì)分成不同檢查項(xiàng)進(jìn)行診斷定位。

總結(jié)起來(lái)就是:將任務(wù)從提交到產(chǎn)出結(jié)束(包括各個(gè)流轉(zhuǎn)節(jié)點(diǎn)以及流轉(zhuǎn)服務(wù)),抽象并劃分成不同階段,并對(duì)上述各個(gè)階段細(xì)分不同的檢查項(xiàng)進(jìn)行診斷定位,提供相關(guān)專業(yè)化的優(yōu)化以及解決建議,提高業(yè)務(wù)方對(duì)任務(wù)運(yùn)行過(guò)程的掌控,包括任務(wù)運(yùn)行效率的提升以及資源利用率的提升。

2對(duì)業(yè)務(wù)能產(chǎn)生什么價(jià)值?

主要的價(jià)值其實(shí)就一點(diǎn):增加業(yè)務(wù)方對(duì)任務(wù)的掌控能力。這里的掌控能力主要分以下幾個(gè)方面:

資源:指的是資源申請(qǐng)和實(shí)際使用是否合理,利用率是否正常

效率:任務(wù)運(yùn)行效率是否可以提升,是否可以加快產(chǎn)出

異常定位:異常在哪,如何解決

配置:配置是否合理,不合理的配置如何修改

在目前的系統(tǒng)中,業(yè)務(wù)方提交任務(wù)之后,直至結(jié)束,對(duì)任務(wù)的整個(gè)運(yùn)行完全屬于一個(gè)摸黑狀態(tài)。任務(wù)全鏈路診斷就能解決這種摸黑狀態(tài),并且提升業(yè)務(wù)方上述幾個(gè)方面的掌控能力,達(dá)到降本增效的目的。

說(shuō)到這里,可能有的小伙伴會(huì)問(wèn),這是真的嗎?那我們就直接貼圖以及數(shù)據(jù)來(lái)展示~

目前內(nèi)部我們針對(duì)音樂(lè)進(jìn)行了一次任務(wù)計(jì)算資源的優(yōu)化,優(yōu)化時(shí)間范圍為0-7點(diǎn)(業(yè)務(wù)高峰期),優(yōu)化任務(wù)數(shù)量為前200的任務(wù),總體統(tǒng)計(jì)數(shù)據(jù)均只包含該時(shí)間段(0-7點(diǎn))。

整體優(yōu)化效果如圖:

在針對(duì)0-7點(diǎn)的前200任務(wù)優(yōu)化后,vcore的資源水位下降如上所示。

對(duì)于一個(gè)只有5.3w的vcore的集群而言,前200的任務(wù)占集群43%的資源,能夠達(dá)到上述的優(yōu)化效果,還是非常可觀的,并且音樂(lè)業(yè)務(wù)方本身對(duì)于任務(wù)的優(yōu)化情況就較好。

單個(gè)任務(wù)的優(yōu)化效果如圖:

單個(gè)任務(wù)的優(yōu)化效果如上所示,不言而喻。

看到這里,小伙伴對(duì)于任務(wù)全鏈路診斷這塊對(duì)于業(yè)務(wù)方是否能帶來(lái)收益,是否還有疑問(wèn)?

3任務(wù)全鏈路診斷我們是怎么做的?

首先,我們將任務(wù)生命周期大致分為三個(gè)階段,如下所示:

任務(wù)準(zhǔn)備階段,主要是指資源的初始化、本地化等一系列的前期準(zhǔn)備。涉及到y(tǒng)arn的調(diào)度、資源、本地節(jié)點(diǎn)、hdfs等。

任務(wù)運(yùn)行階段,主要是指任務(wù)按照既定邏輯運(yùn)行。

任務(wù)產(chǎn)出階段,主要是指任務(wù)具體邏輯運(yùn)行完畢后,數(shù)據(jù)持久化或其他的一系列操作。涉及到hdfs、metastore等。

針對(duì)每個(gè)階段,我們?cè)俑鶕?jù)內(nèi)部運(yùn)維相關(guān)經(jīng)驗(yàn)以及特征,抽象劃分成不同的檢查項(xiàng)對(duì)其進(jìn)行診斷。如果診斷出異常,會(huì)附加相關(guān)的標(biāo)簽。標(biāo)簽會(huì)攜帶異常原因、異常表象、優(yōu)化建議等。

看到這里,大家可能會(huì)有個(gè)疑問(wèn):任務(wù)根據(jù)標(biāo)簽按照優(yōu)化建議優(yōu)化后,就能加快產(chǎn)出、提高資源的利用率嗎?

答案是可以的。因?yàn)槊總€(gè)檢查項(xiàng)的評(píng)判標(biāo)準(zhǔn)都是時(shí)長(zhǎng)和資源,所有的優(yōu)化最終的表現(xiàn)都可以通過(guò)時(shí)長(zhǎng)和資源兩個(gè)維度進(jìn)行衡量。

下面我們會(huì)詳細(xì)說(shuō)明下各個(gè)階段的檢查項(xiàng)劃分。

3.1 任務(wù)準(zhǔn)備階段

針對(duì)這一階段,我們對(duì)其進(jìn)行了抽象劃分,分為如下各個(gè)檢查項(xiàng):

該階段,我們通過(guò)對(duì)不同類型container的狀態(tài)機(jī)變化的間隔時(shí)長(zhǎng),進(jìn)行檢查項(xiàng)劃分。上述的各個(gè)檢查項(xiàng),也可以關(guān)聯(lián)相關(guān)節(jié)點(diǎn)和服務(wù)。

在這之前,這個(gè)階段基本上對(duì)于所有的業(yè)務(wù)方來(lái)說(shuō),甚至開發(fā),都是屬于完全不了解、不掌控的階段。實(shí)際監(jiān)控后,發(fā)現(xiàn)很多任務(wù)在該階段都存在問(wèn)題。

目前在產(chǎn)品中,我們將其檢查項(xiàng)提取成4組標(biāo)簽,展示如下:

上述檢查項(xiàng)的優(yōu)化,主要帶來(lái)的是任務(wù)產(chǎn)出時(shí)長(zhǎng)的優(yōu)化。這里我們簡(jiǎn)單的舉一個(gè)例子來(lái)說(shuō)明下我們是如何做的。

AM分配耗時(shí)過(guò)長(zhǎng)

以AM分配耗時(shí)這個(gè)檢查項(xiàng)為例,判斷的依據(jù)如下:

獲取任務(wù)該檢查項(xiàng)的耗時(shí)

與集群AM分配速率以及該任務(wù)此檢查項(xiàng)的歷史水平進(jìn)行對(duì)比

如發(fā)現(xiàn)不匹配集群的分配速率或超出歷史統(tǒng)計(jì)模型設(shè)置的上限,則檢查任務(wù)提交隊(duì)列的資源水位

如該隊(duì)列資源水位已滿,則告知業(yè)務(wù)方由于隊(duì)列資源不足造成;如該隊(duì)列資源水位正常,但是AM資源已滿,則告知業(yè)務(wù)方由于AM資源不足造成,建議修改AM資源配比

如該檢查項(xiàng)異常,業(yè)務(wù)方可以根據(jù)給出的相關(guān)建議進(jìn)行處理,加快任務(wù)的產(chǎn)出。

3.2 任務(wù)運(yùn)行階段

針對(duì)這一階段,我們也將spark任務(wù)進(jìn)行了一個(gè)大概的抽象,如下所示:

該階段,我們主要通過(guò)實(shí)時(shí)統(tǒng)計(jì)分析spark的event指標(biāo)進(jìn)行檢查項(xiàng)的診斷。

當(dāng)前此階段檢查項(xiàng)的劃分還處于增長(zhǎng)的狀態(tài),目前大致已有20余項(xiàng),部分檢查項(xiàng)標(biāo)簽如下所示:

上述檢查項(xiàng)的優(yōu)化,為什么能帶來(lái)資源利用率的提升以及運(yùn)行效率的提升?我們以幾個(gè)簡(jiǎn)單的檢查項(xiàng)來(lái)舉例說(shuō)明一下。

(1)Input Task數(shù)量檢查

該檢查項(xiàng)主要是針對(duì)input階段task數(shù)量過(guò)多,但是input數(shù)據(jù)量不大的情況(這里不大,是指的小于等于目前我們?cè)\斷配置的閾值,一般默認(rèn)為128Mb)。

在目前生產(chǎn)環(huán)境中,我們發(fā)現(xiàn)很多input階段的stage存在10W+的task在運(yùn)行。這里很多人會(huì)認(rèn)為,這些任務(wù)應(yīng)該會(huì)很快產(chǎn)出,任務(wù)沒(méi)啥問(wèn)題。

但是我們通過(guò)實(shí)際的數(shù)據(jù)分析后發(fā)現(xiàn)以下規(guī)則:

input階段的stage存在巨量的task,一般會(huì)伴隨GC檢查項(xiàng)異常,GC耗時(shí)占整個(gè)stage運(yùn)行時(shí)長(zhǎng)超過(guò)10%以上

相同任務(wù)相同階段的task處理數(shù)據(jù)量增加,并不會(huì)使task的運(yùn)行時(shí)長(zhǎng)呈現(xiàn)等比例的增長(zhǎng)。因?yàn)檎{(diào)度開銷以及序列化會(huì)有部分消耗,另外input階段網(wǎng)絡(luò)以及磁盤IO對(duì)task運(yùn)行時(shí)長(zhǎng)的影響較大

這種含有巨量task的stage,不可能一輪就能運(yùn)行完畢

因此針對(duì)input階段的stage,存在巨量的task運(yùn)行并不是一個(gè)很好的主意。

針對(duì)該檢查項(xiàng),我們一般會(huì)建議用戶將spark.sql.files.maxPartitionBytes配置提高,例如由默認(rèn)的128Mb提高至512Mb。我們可以簡(jiǎn)單的計(jì)算下,大致對(duì)于該階段的stage資源以及時(shí)長(zhǎng)能節(jié)約多少:

原先每個(gè)task處理數(shù)據(jù)量:128Mb

原先input階段stage的task數(shù)量:16w

該任務(wù)同時(shí)最大task運(yùn)行數(shù)量:2w

原先一輪task運(yùn)行耗時(shí):t

現(xiàn)每個(gè)task處理數(shù)據(jù)量:512Mb

現(xiàn)input階段stage的task數(shù)量:4w

該任務(wù)同時(shí)最大task運(yùn)行數(shù)量:2w

數(shù)據(jù)量增長(zhǎng)后,task耗時(shí)增長(zhǎng)倍數(shù):2.5(數(shù)據(jù)量提升4倍后,大致為2-3倍的耗時(shí)增加)

資源:

該階段vcore資源下降比例:37.5% = (2w * 16w/2w * t - 2w * 4w/2w * 2.5t) / (2w * 16w/2w * t)

如果算上GC耗時(shí)的降低,該階段vcore資源下降比例應(yīng)為:40%+

時(shí)長(zhǎng):

該階段運(yùn)行時(shí)長(zhǎng)下降比例:37.5% = (16w/2w * t - 4w/2w * 2.5t) / (16w/2w * t)

如果算上GC耗時(shí)的降低,該階段運(yùn)行時(shí)長(zhǎng)同樣下降比例應(yīng)為:40%+

(2)ExecutorCores空跑檢查

該檢查項(xiàng)主要是針對(duì)Executor只有少量的core在運(yùn)行task,其他大量的core在空跑的情況。

在目前的生產(chǎn)環(huán)境中,我們發(fā)現(xiàn)一些任務(wù)存在Executor只有不到一半的core在運(yùn)行task,其他的core均在空跑。造成這個(gè)現(xiàn)象的原因,主要是Spark任務(wù)在運(yùn)行過(guò)程中每個(gè)Stage的task數(shù)量均會(huì)變化,若某個(gè)Stage的task數(shù)量驟減,且該數(shù)量小于當(dāng)前可用的core數(shù)量,在認(rèn)為每個(gè)task占用一個(gè)core的情況下,會(huì)存在大量Exeucotors的core出現(xiàn)空跑。因?yàn)樵诋?dāng)前生產(chǎn)環(huán)境中,一個(gè)Executors經(jīng)常會(huì)被分配4個(gè)core,若其中只有一個(gè)core被占用,那么這個(gè)executors既不會(huì)被釋放,且另外的3個(gè)core也處于空跑浪費(fèi)的情況。

該現(xiàn)象會(huì)造成任務(wù)大量的占用集群的vcore計(jì)算資源,但是卻沒(méi)有使用,降低任務(wù)以及該集群的資源利用率。

針對(duì)該檢查項(xiàng),我們一般會(huì)建議用戶將spark.executor.cores降低一半,以及將spark.locality.wait.process配置調(diào)大以保證更多的task能分配至一個(gè)executor中。我們也可以簡(jiǎn)單的計(jì)算下,該操作大致對(duì)于該階段的stage資源能節(jié)約多少:

原該stage運(yùn)行的executor數(shù)量:2000

原每個(gè)executor配置的vcore數(shù)量:4

現(xiàn)該stage運(yùn)行的executor數(shù)量:2000

現(xiàn)每個(gè)executor配置的vcore數(shù)量:2

資源:

該階段vcore資源下降比例:50% = (2000 * 4 - 2000 * 2) / (2000 * 4)

3.3 任務(wù)產(chǎn)出階段

任務(wù)產(chǎn)出階段,目前診斷的比較簡(jiǎn)單。主要通過(guò)數(shù)據(jù)量、時(shí)長(zhǎng)的統(tǒng)計(jì),來(lái)判斷是否存在問(wèn)題。如果存在問(wèn)題,關(guān)聯(lián)hdfs以及metastore進(jìn)行問(wèn)題的進(jìn)一步定位。

在此不進(jìn)一步進(jìn)行介紹了。

4業(yè)務(wù)方是怎么使用這塊功能并優(yōu)化的?

在目前的EasyEagle產(chǎn)品中,業(yè)務(wù)方進(jìn)行上述的優(yōu)化操作其實(shí)非常簡(jiǎn)單。根據(jù)任務(wù)運(yùn)行概覽中的可優(yōu)化任務(wù)列表展示的優(yōu)化建議進(jìn)行相關(guān)處理即可,如下所示:

該列表目前暫時(shí)只能展示所選標(biāo)簽下的任務(wù)列表(已排序,按照該標(biāo)簽打分進(jìn)行排序)。后續(xù)版本將會(huì)以任務(wù)維度,通過(guò)任務(wù)運(yùn)行時(shí)長(zhǎng)以及資源消耗排序展示任務(wù)全部異常標(biāo)簽。

業(yè)務(wù)方在點(diǎn)擊具體app id時(shí),可以跳轉(zhuǎn)至任務(wù)的全鏈路診斷詳情頁(yè)面,該頁(yè)面會(huì)將任務(wù)全部的異常檢查項(xiàng)進(jìn)行展示,并會(huì)歷史相關(guān)數(shù)據(jù)進(jìn)行對(duì)比展示。讓用戶也進(jìn)一步了解優(yōu)化前后的資源、時(shí)長(zhǎng)情況。

051背不足思考

業(yè)務(wù)方的確可以非常方便的通過(guò)可優(yōu)化任務(wù)列表獲取相關(guān)任務(wù)以及優(yōu)化建議,但是優(yōu)化操作其實(shí)對(duì)于用戶并不友好,需要用戶進(jìn)行手動(dòng)配置修改。

平臺(tái)側(cè)對(duì)于周期提交的任務(wù),是否可以通過(guò)目前我們EasyEagle提供的優(yōu)化建議,進(jìn)行自動(dòng)的配置調(diào)優(yōu),而不依賴用戶手動(dòng)性的行為?

(部分內(nèi)容來(lái)源網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系刪除)
立即申請(qǐng)數(shù)據(jù)分析/數(shù)據(jù)治理產(chǎn)品免費(fèi)試用 我要試用
customer

在線咨詢

在線咨詢

點(diǎn)擊進(jìn)入在線咨詢