Kafka吞吐量測試


kafka節點信息:

num.network.threads=3

log.dirs=/data2/zdh/kafka/data,/data3/zdh/kafka/data,/data4/zdh/kafka/data,/data5/zdh/kafka/data,/data6/zdh/kafka/data,/data7/zdh/kafka/data,/data8/zdh/kafka/data,/data9/zdh/kafka/data,/data10/zdh/kafka/data

num.partitions=36

log.retention.hours=36

zookeeper.connect=wxbdzte71:2181,zdh233:2181,zdh237:2181,zdh234:2181,wxbdzte72:2181

default.replication.factor=2

auto.leader.rebalance.enable=true

 

①133.37.23.81

內存:252g

cpu核數:32

磁盤讀寫:

dd oflag=direct if=/dev/zero of=/home/testDisk/1.dat bs=1M count=20000

20000+0 records in

20000+0 records out

20971520000 bytes (21 GB) copied, 364.474 s, 57.5 MB/s

dd iflag=direct of=/dev/null if=/home/testDisk/1.dat bs=1M count=20000

20000+0 records in

20000+0 records out

20971520000 bytes (21 GB) copied, 199.663 s, 105 MB/s

 

①133.37.23.98

內存:252g

cpu核數:32

磁盤讀寫:

dd oflag=direct if=/dev/zero of=/home/testDisk/1.dat bs=1M count=20000

記錄了20000+0 的讀入

記錄了20000+0 的寫出

20971520000字節(21 GB)已復制,402.504 秒,52.1 MB/秒

dd iflag=direct of=/dev/null if=/home/testDisk/1.dat bs=1M count=20000

記錄了20000+0 的讀入

記錄了20000+0 的寫出

20971520000字節(21 GB)已復制,222.188 秒,94.4 MB/秒

 

一、kafka producer吞吐率測試

1.測試方法

    利用kafka自帶的工具kafka-producer-pert-test.sh進行測試

./kafka-producer-perf-test.sh --batch-size 180000 --broker-list wxbdzte81:9092,wxbdzte98:9092 --message-size 600 --messages 1000000 --request-num-acks 1  --sync async --threads 3 --topics zou_csllte

 

    total.data.sent.in.nMsg:1000000,發送條數都是1000000

    threads:10,測試用10個線程測試

2.測試結果

    I.batch.size(kafka-producer-pert-test.sh中batch.size表示每批次的消息條數)

        batch.size:(30 90 150 210 270 330 390)

        request-num-acks:0

        sync:async(異步)

        message.size:600

        total.data.sent.in.MB:572.20MB

        compression:0,1,2,3(分別表示不壓縮,GZIP, Snappy, LZ4)

        

一、kafka producer吞吐率測試

1.測試方法

    利用kafka自帶的工具kafka-producer-pert-test.sh進行測試

./kafka-producer-perf-test.sh --batch-size 180000 --broker-list wxbdzte81:9092,wxbdzte98:9092 --message-size 600 --messages 1000000 --request-num-acks 1  --sync async --threads 3 --topics zou_csllte

 

    total.data.sent.in.nMsg:1000000,發送條數都是1000000

    threads:10,測試用10個線程測試

2.測試結果

    I.batch.size(kafka-producer-pert-test.sh中batch.size表示每批次的消息條數)

        batch.size:(30 90 150 210 270 330 390)

        request-num-acks:0

        sync:async(異步)

        message.size:600

        total.data.sent.in.MB:572.20MB

        compression:0,1,2,3(分別表示不壓縮,GZIP, Snappy, LZ4)

        

        一般我們說增大批次,都有利於增加吞吐量(減少了網絡IO次數)。但過增大批次帶來的好處無法抵消壓縮時間的增長,吞吐率就會降低。

    II.request-num-acks

        batch.size:300

        request-num-acks:(-1,0,1)

        sync:async(異步)

        message.size:600

        total.data.sent.in.MB:572.20MB

        compression:不壓縮(0)

        

                        0,提供了最低的延遲,但是持久化的保證是最弱的,當server掛掉的時候會丟失一些數據。

                        1,提供了更好的持久性。

                        -1,提供了最好的持久性,只要還有一個replica存活,那么數據就不會丟失。

 

    III.messagesize(消息大小)

        batch.size:300

        request-num-acks:0

        sync:async(異步)

        message.size:(100 300 500 600 800 1000 1200 1400)

        total.data.sent.in.MB:572.20MB

        compression:0(不壓縮)

        

 

    III.async(同步、異步)

        batch.size:300

        request-num-acks:0

        sync:sync,async(同步,異步)

        message.size:600

        total.data.sent.in.MB:572.20MB

        compression:0(不壓縮)

      

      sync值決定消息是否應在一個后台線程異步發送,設置為async則允許批量發送請求,這回帶來更高的吞吐量(實際吞吐率也與當前環境有關),但是client的機器掛了的話會丟失還沒有發送的數據。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM