国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flink 如何定位反壓節(jié)點(diǎn)?

這篇具有很好參考價(jià)值的文章主要介紹了Flink 如何定位反壓節(jié)點(diǎn)?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

分析&回答

Flink Web UI 自帶的反壓監(jiān)控 —— 直接方式

Flink Web UI 的反壓監(jiān)控提供了 Subtask 級(jí)別的反壓監(jiān)控。監(jiān)控的原理是通過(guò)Thread.getStackTrace() 采集在 TaskManager 上正在運(yùn)行的所有線程,收集在緩沖區(qū)請(qǐng)求中阻塞的線程數(shù)(意味著下游阻塞),并計(jì)算緩沖區(qū)阻塞線程數(shù)與總線程數(shù)的比值 rate。其中,rate < 0.1 為 OK,0.1 <= rate <= 0.5 為 LOW,rate > 0.5 為 HIGH。

Flink 如何定位反壓節(jié)點(diǎn)?,大數(shù)據(jù),flink,網(wǎng)絡(luò),java

Web UI 反壓監(jiān)控?

以下兩種場(chǎng)景可能導(dǎo)致反壓:

  1. 該節(jié)點(diǎn)發(fā)送速率跟不上它的產(chǎn)生數(shù)據(jù)速率。該場(chǎng)景一般是單輸入多輸出的算子,例如FlatMap。定位手段是因?yàn)檫@是從 Source Task 到 Sink Task 的第一個(gè)出現(xiàn)反壓的節(jié)點(diǎn),所以該節(jié)點(diǎn)是反壓的根源節(jié)點(diǎn)。
  2. 下游的節(jié)點(diǎn)處理數(shù)據(jù)的速率較慢,通過(guò)反壓限制了該節(jié)點(diǎn)的發(fā)送速率。定位手段是從該節(jié)點(diǎn)開(kāi)始繼續(xù)排查下游節(jié)點(diǎn)。

注意事項(xiàng):

  1. 因?yàn)?strong>Flink Web UI 反壓面板是監(jiān)控發(fā)送端的,所以反壓的根源節(jié)點(diǎn)并不一定會(huì)在反壓面板體現(xiàn)出高反壓。如果某個(gè)節(jié)點(diǎn)是性能瓶頸并不會(huì)導(dǎo)致它本身出現(xiàn)高反壓,而是導(dǎo)致它的上游出現(xiàn)高反壓。總體來(lái)看,如果找到第一個(gè)出現(xiàn)反壓的節(jié)點(diǎn),則反壓根源是這個(gè)節(jié)點(diǎn)或者是它的下游節(jié)點(diǎn)
  2. 通過(guò)反壓面板無(wú)法區(qū)分上述兩種狀態(tài),需要結(jié)合 Metrics 等監(jiān)控手段來(lái)定位。如果作業(yè)的節(jié)點(diǎn)數(shù)很多或者并行度很大,即需要采集所有 Task 的棧信息,反壓面板的壓力也會(huì)很大甚至不可用 。

Flink Task Metrics —— 間接方式

(1)回顧 Flink Credit-based 網(wǎng)絡(luò)

Flink Credit-Based 網(wǎng)絡(luò)

① TaskManager 之間的數(shù)據(jù)傳輸

不同的 TaskManager 上的兩個(gè) Subtask 通常情況下,channel 數(shù)量等于分組 key 的數(shù)量或者等于算子并發(fā)度。這些 channel 會(huì)復(fù)用同一個(gè) TaskManager 進(jìn)程的 TCP 請(qǐng)求,并且共享接收端 Subtask 級(jí)別的 Buffer Pool。

② 接收端

每個(gè) channel 在初始階段會(huì)被分配固定數(shù)量的獨(dú)享 Exclusive Buffer,用于存儲(chǔ)接收到的數(shù)據(jù)。算子 Operator 使用后再次釋放 Exclusive? Buffer。說(shuō)明:channel 接收端空閑的 Buffer 數(shù)量稱為 Credit,Credit 會(huì)被定時(shí)同步給發(fā)送端,用于決定發(fā)送多少個(gè) Buffer 的數(shù)據(jù)。

③ 流量較大的場(chǎng)景

接收端,channel 寫滿 Exclusive Buffer 后,F(xiàn)link 會(huì)向 Buffer Pool 申請(qǐng)剩余的 Floating Buffer。發(fā)送端,一個(gè) Subtask 所有的 Channel 會(huì)共享同一個(gè) Buffer Pool,因此不區(qū)分 Exclusive Buffer 和 Floating Buffer。

(2)Flink Task Metrics 監(jiān)控反壓

Network和?task I/Ometrics 是輕量級(jí)反壓監(jiān)視器,用于正在持續(xù)運(yùn)行的作業(yè),其中一下幾個(gè) metrics 是最有用的反壓指標(biāo)。

Flink 如何定位反壓節(jié)點(diǎn)?,大數(shù)據(jù),flink,網(wǎng)絡(luò),java

metrics反壓指標(biāo)

采用 Metrics 分析反壓的思路:如果一個(gè) Subtask 的發(fā)送端 Buffer 占用率很高,則表明它被下游反壓限速了;如果一個(gè) Subtask 的接受端 Buffer 占用很高,則表明它將反壓傳導(dǎo)至上游。

Flink 如何定位反壓節(jié)點(diǎn)?,大數(shù)據(jù),flink,網(wǎng)絡(luò),java

inPoolUsage和outPoolUsage反壓分析表

解釋:

①?outPoolUsage 和 inPoolUsage 同為低表明當(dāng)前?Subtask 是正常的,同為高分別表明當(dāng)前 Subtask 被下游反壓。

②?如果一個(gè) Subtask 的 outPoolUsage 是高,通常是被下游 Task 所影響,所以可以排查它本身是反壓根源的可能性。

③?如果一個(gè) Subtask 的 outPoolUsage 是低,但其 inPoolUsage 是高,則表明它有可能是反壓的根源。因?yàn)橥ǔ7磯簳?huì)傳導(dǎo)至其上游,導(dǎo)致上游某些 Subtask 的 outPoolUsage 為高。

注意:反壓有時(shí)是短暫的且影響不大,比如來(lái)自某個(gè) channel 的短暫網(wǎng)絡(luò)延遲或者 TaskManager 的正常 GC,這種情況下可以不用處理。

下表把 inPoolUsage 分為?floatingBuffersUsage 和 exclusiveBuffersUsage,并且總結(jié)上游 Task?outPoolUsage 與?floatingBuffersUsage 、 exclusiveBuffersUsage 的關(guān)系,進(jìn)一步的分析一個(gè) Subtask 和其上游 Subtask 的反壓情況。

Flink 如何定位反壓節(jié)點(diǎn)?,大數(shù)據(jù),flink,網(wǎng)絡(luò),java

正在上傳…重新上傳取消

outPoolUsage 與?floatingBuffersUsage 、 exclusiveBuffersUsage 的關(guān)系表

  1. floatingBuffersUsage 為高則表明反壓正在傳導(dǎo)至上游。
  2. exclusiveBuffersUsage 則表明了反壓可能存在傾斜。如果floatingBuffersUsage 高、exclusiveBuffersUsage 低,則存在傾斜。因?yàn)樯贁?shù) channel 占用了大部分的 floating Buffer(channel 有自己的 exclusive buffer,當(dāng) exclusive buffer 消耗完,就會(huì)使用floating Buffer)。?

3 Flink 如何分析反壓

上述主要通過(guò) TaskThread 定位反壓,而分析反壓原因類似一個(gè)普通程序的性能瓶頸

(1)數(shù)據(jù)傾斜

通過(guò) Web UI 各個(gè) SubTask 的 Records Sent 和 Record Received 來(lái)確認(rèn),另外 Checkpoint detail 里不同 SubTask 的 State size 也是一個(gè)分析數(shù)據(jù)傾斜的有用指標(biāo)。解決方式把數(shù)據(jù)分組的 key 進(jìn)行本地/預(yù)聚合來(lái)消除/減少數(shù)據(jù)傾斜。

(2)用戶代碼的執(zhí)行效率

對(duì) TaskManager 進(jìn)行 CPU profile,分析 TaskThread 是否跑滿一個(gè) CPU 核:如果沒(méi)有跑滿,需要分析 CPU 主要花費(fèi)在哪些函數(shù)里面,比如生產(chǎn)環(huán)境中偶爾會(huì)卡在 Regex 的用戶函數(shù)(ReDoS);如果沒(méi)有跑滿,需要看 Task Thread 阻塞在哪里,可能是用戶函數(shù)本身有些同步的調(diào)用,可能是 checkpoint 或者 GC 等系統(tǒng)活動(dòng)。

(3)TaskManager 的內(nèi)存以及 GC

TaskManager JVM 各區(qū)內(nèi)存不合理導(dǎo)致的頻繁 Full GC 甚至失聯(lián)??梢约由?-XX:+PrintGCDetails 來(lái)打印 GC 日志的方式來(lái)觀察 GC 的問(wèn)題。推薦TaskManager 啟用 G1 垃圾回收器來(lái)優(yōu)化 GC。

喵嗚面試助手:一站式解決面試問(wèn)題,你可以搜索微信小程序 [喵嗚面試助手]?或關(guān)注 [喵嗚刷題] -> 面試助手?免費(fèi)刷題。如有好的面試知識(shí)或技巧期待您的共享!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-691613.html

到了這里,關(guān)于Flink 如何定位反壓節(jié)點(diǎn)?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 識(shí)別flink的反壓源頭

    識(shí)別flink的反壓源頭

    flink中最常見(jiàn)的問(wèn)題就是反壓,這種情況下我們要正確的識(shí)別導(dǎo)致反壓的真正的源頭,本文就簡(jiǎn)單看下如何正確識(shí)別反壓的源頭 首先我們必須意識(shí)到現(xiàn)實(shí)中輕微的反壓是沒(méi)有必要去優(yōu)化的,因?yàn)檫@種情況下是由于偶爾的流量峰值,TaskManager的GC,定時(shí)任務(wù),或者網(wǎng)絡(luò)波動(dòng)正好觸

    2024年02月06日
    瀏覽(20)
  • 對(duì)比Flink、Storm、Spark Streaming 的反壓機(jī)制

    對(duì)比Flink、Storm、Spark Streaming 的反壓機(jī)制

    Flink 反壓機(jī)制 Flink 如何處理反壓? Storm 反壓機(jī)制 Storm反壓機(jī)制 ? Storm 在每一個(gè) Bolt 都會(huì)有一個(gè)監(jiān)測(cè)反壓的線程(Backpressure Thread),這個(gè)線程一但檢測(cè)到 Bolt 里的接收隊(duì)列(recv queue)出現(xiàn)了嚴(yán)重阻塞就會(huì)把這個(gè)情況寫到 ZooKeeper 里,ZooKeeper 會(huì)一直被 Spout 監(jiān)聽(tīng),監(jiān)聽(tīng)到有反壓的

    2024年02月10日
    瀏覽(36)
  • 一種基于動(dòng)態(tài)水位值的Flink調(diào)度優(yōu)化算法(flink1.5以前),等同于實(shí)現(xiàn)flink的Credit-based反壓原理

    一種基于動(dòng)態(tài)水位值的Flink調(diào)度優(yōu)化算法(flink1.5以前),等同于實(shí)現(xiàn)flink的Credit-based反壓原理

    首先說(shuō)明,偶然看了個(gè)論文,發(fā)現(xiàn) flink優(yōu)化原來(lái)比我想象中的更簡(jiǎn)單,得到了一些啟發(fā),所以寫下這篇帖子,供大家共同學(xué)習(xí)。 看到的論文是《計(jì)算機(jī)科學(xué)與應(yīng)用》21年11月的一篇 名字就叫做 : 一種基于動(dòng)態(tài)水位值的Flink調(diào)度優(yōu)化算法。感興趣的小伙伴可以自己看一下 ,很

    2024年02月22日
    瀏覽(19)
  • Flink正常消費(fèi)一段時(shí)間后,大量反壓,看著像卡住了,但又沒(méi)有報(bào)錯(cuò)。

    Flink正常消費(fèi)一段時(shí)間后,大量反壓,看著像卡住了,但又沒(méi)有報(bào)錯(cuò)。

    前面我也有提到,發(fā)現(xiàn)flink運(yùn)行一段時(shí)間后,不再繼續(xù)消費(fèi)的問(wèn)題。這個(gè)問(wèn)題困擾了我非常久,一開(kāi)始也很迷茫。又因?yàn)楸容^忙,所以一直沒(méi)有時(shí)間能夠去尋找答案,只是通過(guò)每天重啟的方式去解決。經(jīng)過(guò)分析,其實(shí)這個(gè)問(wèn)題也很容易找到根源,有興趣就和我一起看下叭 首先

    2024年02月14日
    瀏覽(17)
  • 單機(jī)單節(jié)點(diǎn)Flink的部署

    單機(jī)單節(jié)點(diǎn)Flink的部署

    官方下載網(wǎng)址:https://archive.apache.org/dist/flink/ 這里選擇1.15.2這個(gè)版本 把下載好的文件上傳到 /opt/software 上 把Flink解壓到 /opt/module 中,要 提前創(chuàng)建module文件夾 然后source一下 flink單節(jié)點(diǎn)部署的話只需要修改一個(gè)地方 因?yàn)橐呀?jīng)配置了環(huán)境變量所以直接用 start-cluster.sh 就可以啟動(dòng)

    2024年02月12日
    瀏覽(18)
  • 206.Flink(一):flink概述,flink集群搭建,flink中執(zhí)行任務(wù),單節(jié)點(diǎn)、yarn運(yùn)行模式,三種部署模式的具體實(shí)現(xiàn)

    206.Flink(一):flink概述,flink集群搭建,flink中執(zhí)行任務(wù),單節(jié)點(diǎn)、yarn運(yùn)行模式,三種部署模式的具體實(shí)現(xiàn)

    Flink官網(wǎng)地址:Apache Flink? — Stateful Computations over Data Streams | Apache Flink Flink是一個(gè) 框架 和 分布式處理引擎 ,用于對(duì) 無(wú)界 和 有界 數(shù)據(jù)流進(jìn)行 有狀態(tài)計(jì)算 。 無(wú)界流(流): 有定義流的開(kāi)始,沒(méi)有定義結(jié)束。會(huì)無(wú)休止產(chǎn)生數(shù)據(jù) 無(wú)界流數(shù)據(jù)必須持續(xù)處理 有界流(批): 有定

    2024年02月11日
    瀏覽(21)
  • flink-1.17.2的單節(jié)點(diǎn)部署

    flink-1.17.2的單節(jié)點(diǎn)部署

    Apache Flink 是一個(gè)開(kāi)源的流處理和批處理框架,用于大數(shù)據(jù)處理和分析。它旨在以實(shí)時(shí)和批處理模式高效處理大量數(shù)據(jù)。Flink 支持事件時(shí)間處理、精確一次語(yǔ)義、有狀態(tài)計(jì)算等關(guān)鍵功能。 以下是與Apache Flink相關(guān)的一些主要特性和概念: 流處理和批處理: 流處理: Flink 支持流

    2024年03月27日
    瀏覽(12)
  • 如何解決Flink任務(wù)的數(shù)據(jù)傾斜

    如何解決flink任務(wù)的數(shù)據(jù)傾斜問(wèn)題 Flink 任務(wù)的數(shù)據(jù)傾斜問(wèn)題可以通過(guò)以下幾種方法來(lái)解決: 使用滑動(dòng)窗口:滑動(dòng)窗口可以將窗口劃分成多個(gè)子窗口,從而使數(shù)據(jù)更加均衡地分配到不同的計(jì)算節(jié)點(diǎn)中。同時(shí),滑動(dòng)窗口還可以使窗口內(nèi)的數(shù)據(jù)更加連續(xù),從而減少數(shù)據(jù)傾斜的情況。

    2024年02月14日
    瀏覽(26)
  • 如何使用Spark/Flink等分布式計(jì)算引擎做網(wǎng)絡(luò)入侵檢測(cè)

    如何使用Spark/Flink等分布式計(jì)算引擎做網(wǎng)絡(luò)入侵檢測(cè)

    ?申明: 未經(jīng)許可,禁止以任何形式轉(zhuǎn)載,若要引用,請(qǐng)標(biāo)注鏈接地址。 全文共計(jì)3077字,閱讀大概需要3分鐘 ??更多學(xué)習(xí)內(nèi)容, 歡迎??關(guān)注??【文末】我的個(gè)人微信公眾號(hào):不懂開(kāi)發(fā)的程序猿 個(gè)人網(wǎng)站:https://jerry-jy.co/ 本篇博客是我在做 基于Spark/Flink大數(shù)據(jù)環(huán)境下網(wǎng)絡(luò)入

    2024年02月11日
    瀏覽(21)
  • Flink讀取mysql數(shù)據(jù)庫(kù)(java)

    Flink讀取mysql數(shù)據(jù)庫(kù)(java)

    代碼如下: 運(yùn)行結(jié)果如下:

    2024年02月12日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包