距離上次解決flink計(jì)算業(yè)務(wù)鏈相關(guān)指標(biāo)延遲問(wèn)題已經(jīng)過(guò)去2個(gè)多月,當(dāng)時(shí)根據(jù)解決問(wèn)題的過(guò)程編寫(xiě)了<<開(kāi)源組件Flink性能優(yōu)化之實(shí)時(shí)計(jì)算延遲填坑記>> 。
自從上次解決flink內(nèi)存泄漏的問(wèn)題后,2個(gè)多月時(shí)間內(nèi),在flink組件上的所有任務(wù)一直平穩(wěn)運(yùn)行,但最近監(jiān)控日志采集入庫(kù)延遲的告警短信頻頻響起,表明問(wèn)題來(lái)了。
最初以為是更新flink運(yùn)行包的原因,于是比對(duì)版本和代碼,發(fā)現(xiàn)flink日志采集任務(wù)部分的程序沒(méi)有做任何的更改,flink環(huán)境也沒(méi)有變化,對(duì)于程序來(lái)說(shuō),如果輸出發(fā)生變化,程序和環(huán)境沒(méi)有變化,那唯一的解釋就是輸入發(fā)生了變化,日志采集數(shù)據(jù)量上升導(dǎo)致了日志延時(shí)。那就統(tǒng)計(jì)每天的日志采集數(shù)據(jù)量,但采集客戶(hù)端及服務(wù)端沒(méi)有這個(gè)處理的數(shù)據(jù)量,kafka也沒(méi)法統(tǒng)計(jì)每天的寫(xiě)入量,而flink也是只能看到處理的總數(shù)據(jù)量。
統(tǒng)計(jì)不到?jīng)]關(guān)系,我們把數(shù)據(jù)量降下來(lái)不就可以看到,停一部分采集再看日志入庫(kù)還會(huì)不會(huì)延時(shí),問(wèn)題不就確定了嗎?但是經(jīng)過(guò)和應(yīng)用開(kāi)發(fā)商溝通,每個(gè)日志都不能下線或停止采集。
怎么辦,優(yōu)化唄,問(wèn)題是優(yōu)化哪里?首先需要先找到數(shù)據(jù)的增長(zhǎng)對(duì)哪個(gè)環(huán)節(jié)影響最大,這時(shí)候我們就應(yīng)用到奧卡姆剃刀原則,奧卡姆剃刀原則又名簡(jiǎn)約之法則,這是一個(gè)解決問(wèn)題的法則,剔除多余的不必要的環(huán)節(jié),直到簡(jiǎn)單到不能再簡(jiǎn)單,此時(shí)暴露出來(lái)的地方就是問(wèn)題關(guān)鍵。
flink日志采集任務(wù)經(jīng)過(guò)采集客戶(hù)端,采集服務(wù)端,kafka,flink,es。經(jīng)過(guò)消費(fèi)中間過(guò)程的kafka,發(fā)現(xiàn)kafka中的日志是最新的,沒(méi)有延時(shí),排除前面采集過(guò)程導(dǎo)致的延時(shí),所以問(wèn)題出在flink消費(fèi)kafka數(shù)據(jù)寫(xiě)入es這個(gè)環(huán)節(jié),在這個(gè)過(guò)程中有三個(gè)步驟,flink解碼,flink分詞,flink入庫(kù),下面我們將一個(gè)個(gè)去掉,測(cè)試哪個(gè)環(huán)節(jié)影響日志任務(wù)延時(shí)。
第一步,由于客戶(hù)在使用的過(guò)程中,并沒(méi)有用到flink的分詞去查詢(xún),去掉flink分詞過(guò)程后經(jīng)過(guò)觀察依然出現(xiàn)延時(shí),說(shuō)明可能是解碼和入庫(kù)過(guò)程發(fā)生了延時(shí)。
第二步,再去掉解碼,僅保留flink入庫(kù)過(guò)程,此時(shí)依然出現(xiàn)延時(shí),可以確定flink入庫(kù)是延時(shí)的一個(gè)環(huán)節(jié)。既然確定flink入庫(kù)是延時(shí)的一個(gè)原因,首先我們優(yōu)化flink入庫(kù),提高寫(xiě)入es的數(shù)據(jù)量,由于es的參數(shù)設(shè)置早已經(jīng)經(jīng)過(guò)優(yōu)化設(shè)置,沒(méi)有太多回旋的余地,只能選擇關(guān)閉es副本,提高es寫(xiě)入數(shù)據(jù)量。
第三步,關(guān)閉副本后,加上上面兩步關(guān)閉的解碼和分詞,在去掉解碼,分詞和關(guān)閉副本后,程序正常沒(méi)有延時(shí),此時(shí)可以作為正常的基點(diǎn)。
第四步,再次開(kāi)啟副本后,在解碼,分詞是關(guān)閉狀態(tài)下出現(xiàn)了延時(shí),驗(yàn)證了之前的開(kāi)啟副本產(chǎn)生延時(shí)。
第五步,關(guān)閉副本,關(guān)閉分詞,僅開(kāi)啟解碼,此時(shí)沒(méi)有出現(xiàn)延時(shí),說(shuō)明解碼對(duì)延時(shí)不產(chǎn)生影響。
第六步,關(guān)閉副本狀態(tài)下,開(kāi)啟解碼和分詞,此時(shí)立刻出現(xiàn)延時(shí),說(shuō)明分詞過(guò)程也是日志采集入庫(kù)延時(shí)的一個(gè)原因。
綜上步驟測(cè)試,驗(yàn)證了在數(shù)據(jù)量上升的過(guò)程中,分詞過(guò)程和開(kāi)啟es副本對(duì)日志采集入庫(kù)延時(shí)的影響最大。解碼幾乎不受數(shù)據(jù)量增長(zhǎng)的影響。
既然找到了問(wèn)題是flink分詞過(guò)程和es副本,所以需要優(yōu)化的地方就是這兩個(gè):
優(yōu)化es副本:
將副本開(kāi)啟時(shí)間改為凌晨,凌晨將昨天寫(xiě)入的數(shù)據(jù)在凌晨的空閑時(shí)間再生成副本,避免寫(xiě)入的時(shí)候產(chǎn)生es副本;
優(yōu)化flink分詞過(guò)程:
由于已經(jīng)定位是flink的分詞影響,所以針對(duì)分詞處理過(guò)程和分詞處理結(jié)果入庫(kù)環(huán)節(jié)效率進(jìn)一步優(yōu)化。
在解決問(wèn)題的過(guò)程中,發(fā)現(xiàn)有些地方做的不足,比如未統(tǒng)計(jì)每天及每小時(shí)采集數(shù)據(jù)量做基線,在出現(xiàn)問(wèn)題時(shí),無(wú)統(tǒng)計(jì)數(shù)據(jù)歷史基線對(duì)比,無(wú)法說(shuō)服用戶(hù)是日志數(shù)據(jù)增長(zhǎng)導(dǎo)致的延時(shí)。目前我們已經(jīng)部署了腳本監(jiān)控每天和每小時(shí)寫(xiě)入es的數(shù)據(jù)量,確保下次出現(xiàn)問(wèn)題時(shí)有據(jù)可查。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/130119.html
摘要:在開(kāi)發(fā)設(shè)計(jì)中有一些常用原則或者潛規(guī)則,根據(jù)筆者的經(jīng)驗(yàn),這里稍微總結(jié)一下最最常用的,以饗讀者。是處理復(fù)雜性的一個(gè)原則。參考六大設(shè)計(jì)原則里氏替換原則奧卡姆剃刀如有問(wèn)題可以通過(guò)郵件微信聯(lián)系我。 在開(kāi)發(fā)設(shè)計(jì)中有一些常用原則或者潛規(guī)則,根據(jù)筆者的經(jīng)驗(yàn),這里稍微總結(jié)一下最最常用的,以饗讀者。 DRY 這里的DRY是Do Not Repeat Yourself的縮寫(xiě)。具體解釋參見(jiàn) ,嚴(yán)謹(jǐn)?shù)亩x是 E...
摘要:彼得原理每個(gè)組織都是由各種不同的職位等級(jí)或階層的排列所組成,每個(gè)人都隸屬于其中的某個(gè)等級(jí)。對(duì)一個(gè)組織而言,一旦相當(dāng)部分人員被推到其不稱(chēng)職的級(jí)別,就會(huì)造成組織的人浮于事,效率低下,導(dǎo)致平庸者出人頭地,發(fā)展停滯。 1、蘑菇管理 蘑菇管理是許多組織對(duì)待初出茅廬者的一種管理方法,初學(xué)者被置于陰暗的角落(不受重視的部門(mén),或打雜跑腿的工作),澆上一頭大糞(無(wú)端的批評(píng)、指責(zé)、代人受過(guò)),任其...
摘要:在移動(dòng)端,愛(ài)奇藝月度總有效時(shí)長(zhǎng)億小時(shí),穩(wěn)居中國(guó)榜第三名。愛(ài)奇藝的峰值事件數(shù)達(dá)到萬(wàn)秒,在正確性容錯(cuò)性能延遲吞吐量擴(kuò)展性等方面均遇到不小的挑戰(zhàn)。從到愛(ài)奇藝主要使用的是和來(lái)進(jìn)行流式計(jì)算。作者:陳越晨 整理:劉河 本文將為大家介紹Apache Flink在愛(ài)奇藝的生產(chǎn)與實(shí)踐過(guò)程。你可以借此了解到愛(ài)奇藝引入Apache Flink的背景與挑戰(zhàn),以及平臺(tái)構(gòu)建化流程。主要內(nèi)容如下: 愛(ài)奇藝在實(shí)時(shí)計(jì)算方...
閱讀 1457·2023-01-11 13:20
閱讀 1811·2023-01-11 13:20
閱讀 1262·2023-01-11 13:20
閱讀 2004·2023-01-11 13:20
閱讀 4225·2023-01-11 13:20
閱讀 2878·2023-01-11 13:20
閱讀 1484·2023-01-11 13:20
閱讀 3805·2023-01-11 13:20