一、测试环境准备
Cpu 内存 硬盘 Intel(R) Xeon(R) CPU E5520 @ 2.27GHz 32G 6T Kafka集群,服务器个数:3台 采用CMS垃圾回收
JVM运行参数
-Xmx1G -Xms1G -server -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true -Xloggc:/usr/local/kafka_2.10-0.8.2.2/bin/../logs/kafkaServer-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dkafka.logs.dir=/usr/local/kafka_2.10-0.8.2.2/bin/../logs -Dlog4j.configuration=file:/usr/local/kafka_2.10-0.8.2.2/bin/../config/log4j.propertiesKafka server端配置
broker.id=165 port=9092 host.name=hadoop165.kuaiyong.in num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=/download/kafka-logs num.partitions=1 num.recovery.threads.per.data.dir=1 log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 log.cleaner.enable=false zookeeper.connect=hadoop165.xxx.in:2181,hadoop166.xxx.in:2181,hadoop167.xxx.in:2181 zookeeper.connection.timeout.ms=6000测试命令行如下 生产者:
bin/kafka-producer-perf-test.sh --broker-list=hadoop02:9092 --messages 100000 --topic s1 --threads 10 --message-size 1000 --batch-size 200 --compression-codec 1 消费者
bin/kafka-consumer-perf-test.sh --zookeeper hadoop03:2181 --messages 500000 --topic s1 --threads 1 二、正常请求测试
1、Producer:
数据量:230万条记录 每次打包发送1000条数据 数据格式:采用压缩格式
测试结果 最大处理量:39.2501MB/S TPS:41156.6817条
2、Consumer
耗时:18秒 总体文件大小:2193.45MB 最大处理量:163.6659MB/S TPS:171616.1767条
三、压力请求测试
1、Producer
数据量:1000万条数据 每次打包发送1000条数据 数据格式:采用压缩格式
测试结果 耗时:242秒 总体文件大小:9536.74MB 最大处理量:39.2531MB/S TPS:41159.8856条
2、Consumer
耗时:70秒 总体文件大小:9536.74MB 最大处理量:145.4193MB/S TPS:152483.1887条 --------------------- 结论:1000万条下的压力测试,性能有所降低,估计瓶颈期在500万条左右