kafka 單機/集群壓力測試

添加:2021/04/22

修改: -

kafka單機壓力測試

由于kafka吞吐量特別大,所以先考慮集群服務(wù)器的自身瓶頸,因為現(xiàn)在測試的是單機所以只會涉及到磁盤IO以及cpu,但是對于kafka來說對于cpu的使用還是可以忽略不計的,

1.測試機磁盤IO瓶頸

1.1磁盤IO寫入瓶頸
使用以下命令測試磁盤IO的寫入瓶頸
sync;time -p bash -c "(dd if=/dev/zero of=test.dd bs=1M count=20000)"
說明: 在當前目錄下創(chuàng)建一個test.dd的文件,寫入20000個1M的數(shù)據(jù)
磁盤寫入IO的結(jié)果
可以看到平均就是187MB/s

image.png

1.2 使用iostat命令監(jiān)測磁盤io情況
使用命令
# iostat -x 1
說明: 擴展查看io性能,每秒刷新一次
注意: 如果沒有iostat,請執(zhí)行yum install sysstat -y進行安裝 iostat命令

image.png

關(guān)注wkB/s和%util兩個參數(shù)

wkB/s:每秒寫入設(shè)備的數(shù)據(jù)量(單位:KB)

%util:消耗在I/O請求中的CPU時間百分比(設(shè)備帶寬利用率)舔痪。如果該值接近100%說明設(shè)備出現(xiàn)了瓶頸寓调。
如圖現(xiàn)在這臺機器的磁盤IO極限值為187MB/s

1.3 單機版測試kafka性能
因為測試的次數(shù)比較多,也沒有去找kafka中數(shù)據(jù)存儲設(shè)置,所以就使用docker部署單機版的kafka (因為測試的數(shù)據(jù)比較多,也就多次的刪除了容器,重新啟動鏡像)
新建目錄:
mkdir /usr/local/kafka_test
dockerfile

FROM ubuntu:16.04
# 修改更新源為阿里云
ADD sources.list /etc/apt/sources.list
ADD kafka_2.12-2.5.1.tgz /
# 安裝jdk
RUN apt-get update && apt-get install -y openjdk-8-jdk --allow-unauthenticated && apt-get clean all

EXPOSE 9092
# 添加啟動腳本
ADD run.sh .
RUN chmod 755 run.sh
ENTRYPOINT [ "/run.sh"]

run.sh

#!/bin/bash

# 啟動自帶的zookeeper
cd /kafka_2.12-2.5.1
bin/zookeeper-server-start.sh config/zookeeper.properties &

# 啟動kafka
sleep 3
bin/kafka-server-start.sh config/server.properties

sources.list

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu xenial-security main restricted
deb http://mirrors.aliyun.com/ubuntu xenial-security universe
deb http://mirrors.aliyun.com/ubuntu xenial-security multiverse

目錄結(jié)構(gòu)如下:

./
├── dockerfile
├── kafka_2.12-2.5.1.tgz
├── run.sh
└── sources.list

生成鏡像
docker build -t kafka_test /usr/local/kafka_test
啟動kafka
docker run -d -it kafka_test

測試結(jié)果

寫入消息量級 分區(qū)數(shù) 寫入消息數(shù)量/s MB/s 平均延遲 最大延遲
10W 1 39169.604387 records/sec 37.36 MB/sec 651.38 ms avg latency 1159.00 ms max latency
100W 1 116577.290744 records/sec 111.18 MB/sec 264.15 ms avg latency 548.00 ms max latency
1000W 1 145365.740202 records/sec 138.63 MB/sec 223.76 ms avg latency 1102.00 ms max latency
1000W 2 169241.965238 records/sec 161.40 MB/sec 191.89 ms avg latency 4675.00 ms max latency
1000W 3 180011.520737 records/sec 171.67 MB/sec 180.26 ms avg latency 4732.00 ms max latency
1000W 4 199612.751263 records/sec 190.37 MB/sec 162.44 ms avg latency 5892.00 ms max latency
1000W 5 197949.245813 records/sec 188.78 MB/sec 163.77 ms avg latency 8729.00 ms max latency

從表格中可以看出來五個分區(qū)就已經(jīng)是極限了

結(jié)果分析
這中間并沒有設(shè)置條數(shù)/每秒,所以就是按照kafka 就會按照量級自動的吞入數(shù)據(jù),如果我們需要對于消息的即時性做控制,還需要再重新測試一下,按照業(yè)務(wù)的延遲找到最合適的數(shù)量(單機版,然后再部署集群,測試適合的數(shù)量)

集群測試:
部署就不再這里說明了
本次測試的是三臺機器集群

測試結(jié)果:

寫入消息量級 分區(qū)數(shù) 寫入消息數(shù)量/s MB/s 平均延遲 最大延遲
1000W 1 183096.528490 records/sec 174.61 MB/sec 177.43 ms avg latency 923.00 ms max latency
1000W 3 422922.393741 records/sec 403.33 MB/sec 76.06 ms avg latency 385.00 ms max latency
1000W 5 453638.178189 records/sec 432.62 MB/sec 69.35 ms avg latency 1708.00 ms max latency

之后還測試了9個分區(qū)的topic 因為空間不足所以就沒有繼續(xù)測下去,但是看部分數(shù)據(jù)還超過了500MB/s還是有上升空間的

1.3 磁盤IO 讀取瓶頸
使用一下命令測試磁盤IO的讀取瓶頸
hdparm -tT --direct /dev/vda
說明: hdparm命令是顯示與設(shè)定硬盤的參數(shù), -t參數(shù)為評估硬盤的讀取效率(不經(jīng)過磁盤cache), -T參數(shù)為評估硬盤的讀取效率(經(jīng)過磁盤cache).

image.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市锄码,隨后出現(xiàn)的幾起案子夺英,更是在濱河造成了極大的恐慌,老刑警劉巖滋捶,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痛悯,死亡現(xiàn)場離奇詭異,居然都是意外死亡重窟,警方通過查閱死者的電腦和手機灸蟆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亲族,“玉大人炒考,你說我怎么就攤上這事■龋” “怎么了斋枢?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長知给。 經(jīng)常有香客問我瓤帚,道長,這世上最難降的妖魔是什么涩赢? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任戈次,我火速辦了婚禮,結(jié)果婚禮上筒扒,老公的妹妹穿的比我還像新娘怯邪。我一直安慰自己,他們只是感情好花墩,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布悬秉。 她就那樣靜靜地躺著,像睡著了一般冰蘑。 火紅的嫁衣襯著肌膚如雪和泌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天祠肥,我揣著相機與錄音武氓,去河邊找鬼。 笑死,一個胖子當著我的面吹牛县恕,可吹牛的內(nèi)容都是我干的东羹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼弱睦,長吁一口氣:“原來是場噩夢啊……” “哼百姓!你這毒婦竟也來了渊额?” 一聲冷哼從身側(cè)響起况木,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎旬迹,沒想到半個月后火惊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡奔垦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年屹耐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椿猎。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡惶岭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出犯眠,到底是詐尸還是另有隱情按灶,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布筐咧,位于F島的核電站鸯旁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏量蕊。R本人自食惡果不足惜铺罢,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望残炮。 院中可真熱鬧韭赘,春花似錦、人聲如沸势就。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛋勺。三九已至瓦灶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抱完,已是汗流浹背贼陶。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碉怔。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓烘贴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親撮胧。 傳聞我的和親對象是個殘疾皇子桨踪,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

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