本文来源 http://blog.youkuaiyun.com/u013970991/article/details/52061794
本文作者是一位非常有经验的Java 开发人员,博客值得细心钻研
一、测试环境准备
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.properties
Kafka 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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
测试命令行如下
生产者:
---. ---
-- -- -- ---
--- ---
消费者
---. --
-- -- --
二、正常请求测试
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万条左右