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