1.0與1.1版本Controller性能壓測(cè)

背景

???? 因?yàn)?.1對(duì)Controller進(jìn)行了重構(gòu),看官方介紹性能有很大提升,正好覺得當(dāng)前1.0版本Controller處理有些慢,簡(jiǎn)單測(cè)試了下性能差異。

壓測(cè)環(huán)境:

Broker機(jī)器:5臺(tái)
Broker JVM配置:-Xms2g -Xmx4g -Xmn1280m -XX:+UseConcMarkSweepGC
日志存儲(chǔ)目錄:2個(gè)目錄
Kafka版本:1.0、1.1
副本數(shù):3
每個(gè)topic分區(qū)數(shù):100

評(píng)估指標(biāo)

????官方并沒有提供Controller性能相關(guān)的metric,不過根據(jù)Controller的職責(zé)和網(wǎng)上的資料,通常根據(jù)Broker的啟停耗時(shí)和Controller容災(zāi)切換時(shí)間來判斷Controller的性能,耗時(shí)越長(zhǎng)說明當(dāng)前Controller性能壓力越大。

壓測(cè)結(jié)果

1.0

topic總數(shù) 單機(jī)分區(qū)數(shù) Broker啟動(dòng)耗時(shí)(s) Broker關(guān)閉耗時(shí)(s) Controller切換耗時(shí)(s) Broker kill -9 Controller處理耗時(shí) 備注
1 40 5 4 6 9
2 100 6 4 5 6
3 160 6 4 30 7
4 220 5 3 30 7
6 400 5 4 19 7
9 580 7 18 30 6
12 760 7 20 21 9
16 1000 7 22 22
31 1900 8 22 32
46 2800 7 25 39
61 3700 8 34 33
91 5500 8 113 47 刪除topic慢
121 7300 9 92 97
151 9100 10 86 85 刪除topic特別慢
181 10900 12 87 87
221 13300 13 108 98 已經(jīng)不能刪除topic
image.png

1.1

topic總數(shù) 單機(jī)分區(qū)數(shù) Broker啟動(dòng)耗時(shí)(s) Broker關(guān)閉耗時(shí)(s) Controller切換耗時(shí)(s) Broker kill -9 Controller處理耗時(shí) 備注
1 40 5 2 1 5
2 100 4 2 1 5
3 160 5 4 2 6
4 220 4 2 2 6
6 400 5 2 1 6
9 580 5 3 2 6
12 760 6 4 1 6
16 1000 7 3 2
31 1900 6 5 3
46 2800 7 5 3
61 3700 4 7 4
91 5500 7 7 6
121 7300 10 8 8
151 9100 9 8 10
181 10900 10 10 12
221 13300 12 13 16 刪除topic慢
image.png

1.0與1.1對(duì)比

image.png

image.png

image.png

image.png

分析

???? 從壓測(cè)結(jié)果可以看到,隨著分區(qū)數(shù)越來越多,耗時(shí)指標(biāo)均呈現(xiàn)上漲趨勢(shì)。啟動(dòng)Broker啟動(dòng)耗時(shí)上漲最慢,應(yīng)該是分區(qū)內(nèi)沒數(shù)據(jù),所以加載很快,線上遇到過分區(qū)數(shù)500,加載半小時(shí)的情況。Broker關(guān)閉耗時(shí)上漲較快是因?yàn)樵趦?yōu)雅關(guān)閉時(shí)需要進(jìn)行Leader切換,導(dǎo)致時(shí)間較長(zhǎng)。Controller耗時(shí)上漲是由于需要管理的分區(qū)數(shù)增長(zhǎng)導(dǎo)致。1.1版本的Controller性能確實(shí)提高不少,在分區(qū)數(shù)持續(xù)增長(zhǎng)情況下,耗時(shí)也能基本保持在個(gè)位數(shù)。
???? 直接對(duì)Broker進(jìn)行kill -9,發(fā)現(xiàn)Controller對(duì)的處理耗時(shí)并未明顯增長(zhǎng)。具體又分為兩種情況:1、kill -9比優(yōu)雅關(guān)閉耗時(shí)短,這和預(yù)期也一致,因?yàn)閮?yōu)雅關(guān)閉會(huì)將當(dāng)前要刷盤的數(shù)據(jù)刷完后才會(huì)關(guān)閉各類線程,耗時(shí)必然會(huì)長(zhǎng)一些。2、kill -9比優(yōu)雅關(guān)閉耗時(shí)長(zhǎng),這主要是因?yàn)閦node節(jié)點(diǎn)失效時(shí)間導(dǎo)致,默認(rèn)是6s,所以最長(zhǎng)等待6s才會(huì)認(rèn)為該broker掛掉,進(jìn)行Leader切換的處理流程。
???? 最后,如果有升級(jí)計(jì)劃,最好升級(jí)到1.1版本或之后的版本~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 6,032評(píng)論 0 9
  • 在一個(gè)Kafka集群中,某個(gè)broker會(huì)被選舉出來承擔(dān)特殊的角色,即控制器(下稱controller)。就是管理...
    SlowGO閱讀 474評(píng)論 0 1
  • Design 1. Motivation 我們?cè)O(shè)計(jì)Kafka用來作為統(tǒng)一的平臺(tái)來處理大公司可能擁有的所有實(shí)時(shí)數(shù)據(jù)源...
    BlackManba_24閱讀 1,652評(píng)論 0 8
  • 簡(jiǎn)介 Kafka從0.8.x版本開始引入副本機(jī)制,這樣可以極大的提高集群的可靠性和穩(wěn)定性。不過這也使得Kafka變...
    朱小廝閱讀 2,044評(píng)論 0 1
  • 為歡送2018年,喜迎2019年,上午大掃除,午飯后開始掃樓道,為防止塵土飛揚(yáng),從一樓到二樓灑了一盆水,等了一會(huì)兒...
    黑白紅666閱讀 355評(píng)論 0 2

友情鏈接更多精彩內(nèi)容