配置
集群配置
- 3个Node 3个节点;
- cpu: 40c
- memory: 256G
- 带宽: 4G
JVM配置
-Xmx30G -Xms30G -XX:MaxPermSize=48m -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35
关键因素测试
Producer测试
1 和线程数的关系(threads)
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 1
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 3 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 5 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 7 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 10 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 15 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 20 --hide-header
Threads | MB/S | nMsg/S |
---|
1 | 81.7960 | 20939.7772 |
3 | 172.1875 | 44080.0053 |
5 | 219.7115 | 56246.1331 |
7 | 252.8478 | 64729.0440 |
10 | 258.6749 | 66607801 |
15 | 283.6163 | 72605.0969 |
20 | 257.4644 | 65910.8885 |
2 和批大小的关系(batch-size)
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 1000 --threads 10
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 5000 --threads 10 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 10 --hide-header
Batch-size | MB/S | nMsg/S |
---|
1000 | 294.6779 | 214776.6323 |
5000 | 282.9386 | 72432.2758 |
10000 | 251.3108 | 32167.7872 |
3 和日志大小的关系(message-size)
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 1024 --batch-size 10000 --threads 10
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 10 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 8192 --batch-size 10000 --threads 10 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 10240 --batch-size 10000 --threads 10 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 20480 --batch-size 10000 --threads 10 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 40960 --batch-size 10000 --threads 10 --hide-header
Message-size | MB/S | nMsg/S |
---|
1024 | 209.7428 | 214776.6323 |
4096 | 282.9386 | 72432.2758 |
8192 | 251.3108 | 32167.7872 |
10240 | 233.6218 | 23922.8727 |
20480 | 220.0903 | 11268.6214 |
4 和响应方式的关系(acks)
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 10 --request-num-acks 0
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 10 --request-num-acks 1 --hide-header
ack | MB/S | nMsg/S |
---|
不响应 | 285.8999 | 73190.3681 |
leader响应 | 276.9408 | 70896.8451 |
5 和压缩方式的关系(compression-codec)
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 10 --compression-codec 0
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 10 --compression-codec 1 --hide-header
./bin/kafka-producer-perf-test2.sh --broker-list cmjx-slave232:9092 --topics s1 --messages 1000000 --message-size 4096 --batch-size 10000 --threads 10 --compression-codec 2 --hide-header
compresson-codec | MB/S | nMsg/S |
---|
非压缩 | 274.5853 | 70293.8282 |
Gzip | 267.6981 | 68530.7018 |
Snappy | 827.5953 | 211864.4068 |
6 Producer配置总结
在特定资源情况下, 在日志大小为4kb, 批大小为5000, 使用15个线程,使用Snapy压缩方式,用不确认的响应方式的情况下,性能最好;
Cosumer测试
1. 和线程数的关系(threads)
./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size 10000 --threads 1
./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size 10000 --threads 3 --hide-header
./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size 10000 --threads 6 --hide-header
./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size 10000 --threads 10 --hide-header
Threads | MB/S | nMsg/S |
---|
1 | 61.9631 | 64973.0362 |
3 | 70.4807 | 73904.3677 |
6 | 72.2006 | 75707.8686 |
10 | 73.1439 | 76696.9193 |
2. 和抓取数据量的关系(fetch-size)
./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size 1000 --threads 10
./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size 2000 --threads 6 --hide-header
./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size 5000 --threads 6 --hide-header
./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size 10000 --threads 6 --hide-header
./bin/kafka-consumer-perf-test.sh --broker-list cmjx-slave232:9092 --zookeeper cmjx-slave236:2181 --topic s1 --messages 1000000 --fetch-size 15000 --threads 6 --hide-header
Fetch-Size | MB/S | nMsg/S |
---|
2000 | 13.2777 | 13922.7289 |
5000 | 46.4211 | 48676.0125 |
10000 | 75.8128 | 79495.4688 |
15000 | 92.6737 | 97175.4341 |
3. cosumer配置总结
使用6-8个线程, 抓取大小为10000左右,性能相对好;