記一次canal delay 調(diào)優(yōu)過程

一况毅、現(xiàn)象

image.png
image.png

每天夜里12點(diǎn)準(zhǔn)時(shí)出現(xiàn)延遲告警恤批,查看canal的監(jiān)控指標(biāo)异吻,delay指標(biāo)延遲在5-10分鐘,blocking指標(biāo)中的sink喜庞、dump趨于100%诀浪,同時(shí)canal服務(wù)的cpu及memeory很穩(wěn)定40%左右。

二延都、分析

被告警吵的實(shí)在受不了了雷猪,于是下定決心解決這個(gè)問題。首先花了點(diǎn)時(shí)間研究了一下canal源碼晰房,整個(gè)canal的解析流程大致分成4步春宣。
binlog dump -- parse -- sink -- kafka(rocketmq)

目前從指標(biāo)分析酵颁,dump及sink都阻塞了,所以判斷出是發(fā)送kafka能力沒跟上月帝,(出問題的canal是kafka模式啟動(dòng)的)。

三幽污、調(diào)優(yōu)的過程
找到可能的原因之后嚷辅,就開始仔細(xì)地看了一下canal的kafka發(fā)送邏輯。在這個(gè)過程中距误,看到了kafka的幾個(gè)參數(shù)簸搞,canal的默認(rèn)值如下


image.png

1、kafka.acks = all,這里的ack有3個(gè)選項(xiàng)准潭,0趁俊、1、all 刑然。all是要等topic的某個(gè)分區(qū)的所有副本都同步完數(shù)據(jù)后才會(huì)給客戶端響應(yīng)寺擂,1只要topic的leader分區(qū)接收到數(shù)據(jù)就會(huì)給客戶端響應(yīng),0是只要數(shù)據(jù)發(fā)出去了會(huì)立即返回泼掠,不會(huì)等待分區(qū)是否接收到數(shù)據(jù)怔软。因此,首先我把這個(gè)值改成了1择镇,為什么選擇改成1挡逼,是因?yàn)?在kafka集群穩(wěn)定的情況下是能夠保證binlog的順序性的。

結(jié)果:改完之后腻豌,發(fā)現(xiàn)效果不明顯家坎,依然有延遲(卒)

2、kafka.batch.size, 這個(gè)值是控制kafka批量消息的大小的吝梅,默認(rèn)是16384 (16K)虱疏,這里要更具實(shí)際的binlog event對象的值合理修改,這個(gè)值的修改我也是觀察了好久數(shù)據(jù)才定位到問題的憔涉。我們的event對象大小是45K订框,所以默認(rèn)的16K壓根就沒起到批量發(fā)送的作用,沒解析一個(gè)event對象就會(huì)發(fā)送兜叨,導(dǎo)致吞吐量上不去穿扳,于是我改成了 921600 (900K),注意這個(gè)值不能超過broker端的最大發(fā)送字節(jié)(message.max.bytes)

結(jié)果:改完之后,發(fā)現(xiàn)效果不明顯国旷,依然有延遲(卒)

3矛物、kafka.linger.ms,批量發(fā)送消息的最大等待時(shí)長跪但,這里我改成了100履羞,需要自己判斷

結(jié)果:改完之后,效果依然不明顯,延遲依舊(卒)

到這里就有點(diǎn)抓狂了忆首,因?yàn)橹荒茉谝估矧?yàn)證爱榔,一等就是一天,修改這些值已經(jīng)搞了快一周了糙及,老板一直催要結(jié)果详幽。害,只能接著觀察數(shù)據(jù)浸锨,接著干唇聘。

4、canal.mq.canalBatchSize柱搜,最后終于找到了這個(gè)參數(shù)迟郎,這個(gè)參數(shù)不是kafka相關(guān)的,這個(gè)是從環(huán)形隊(duì)列中批量處理的event數(shù)量聪蘸,本來我以為這個(gè)是指的event數(shù)量宪肖,結(jié)果看完源碼才發(fā)現(xiàn),canal的內(nèi)存隊(duì)列是通過內(nèi)存大小限制的宇姚,默認(rèn)這個(gè)值是50匈庭,其實(shí)不是拿50個(gè)event對象,而是拿50K的數(shù)量浑劳,如果event很大阱持,每次就只取很少的量,我的event 45K魔熏,所以每次都只取一個(gè)對象衷咽,更本沒法提高吞吐量。根據(jù)高峰期的寫入峰值蒜绽,峰值大概3M/s镶骗,于是我把這個(gè)canal.mq.canalBatchSize設(shè)置成了4500,也就是(4500K)躲雅。

當(dāng)晚就懷著一顆激動(dòng)地心鼎姊,眼睛一眨不眨地盯著canal監(jiān)控。下面是監(jiān)控截圖相赁。3307是優(yōu)化了的相寇,其他幾個(gè)沒有優(yōu)化。

3307的blocking明顯降低


image.png

3307的delay明顯降低


image.png

完美钮科,竣工唤衫,睡覺!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绵脯,一起剝皮案震驚了整個(gè)濱河市佳励,隨后出現(xiàn)的幾起案子休里,更是在濱河造成了極大的恐慌,老刑警劉巖赃承,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妙黍,死亡現(xiàn)場離奇詭異,居然都是意外死亡瞧剖,警方通過查閱死者的電腦和手機(jī)废境,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筒繁,“玉大人,你說我怎么就攤上這事巴元≌庇剑” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵逮刨,是天一觀的道長呕缭。 經(jīng)常有香客問我,道長修己,這世上最難降的妖魔是什么恢总? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮睬愤,結(jié)果婚禮上片仿,老公的妹妹穿的比我還像新娘。我一直安慰自己尤辱,他們只是感情好砂豌,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著光督,像睡著了一般阳距。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上结借,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天筐摘,我揣著相機(jī)與錄音,去河邊找鬼船老。 笑死咖熟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的努隙。 我是一名探鬼主播球恤,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荸镊!你這毒婦竟也來了咽斧?” 一聲冷哼從身側(cè)響起堪置,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎张惹,沒想到半個(gè)月后舀锨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宛逗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年坎匿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雷激。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡替蔬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屎暇,到底是詐尸還是另有隱情承桥,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布根悼,位于F島的核電站凶异,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏挤巡。R本人自食惡果不足惜剩彬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望矿卑。 院中可真熱鬧喉恋,春花似錦、人聲如沸粪摘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徘意。三九已至苔悦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間椎咧,已是汗流浹背玖详。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勤讽,地道東北人蟋座。 一個(gè)月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像脚牍,于是被迫代替她去往敵國和親向臀。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容