rdkafka性能测试小结
来源:互联网 发布:关于数据新闻的选题 编辑:程序博客网 时间:2024/05/17 22:22
先说一下坑的领悟,我相信使用任何一个开源工具,这都是最基本的。
一、观察目录的结构,是否有readme,是否有makefile文件,仔细阅读,尝试make,再阅读源码,其实开源的很多东西,人家自带的文件都写的很清楚,避免再跳进坑里。
二、如果API遇到问题,想想是不是还有什么参数没有写,命令行中提示必须写的参数,API都配置了吗?(例如生产者的broker-list,topic等)
运行rdkafka的客户端环境需求
1. The GNU toolchain
2. GNU make
3. pthreads
4. zlib (optional, for gzip compression support)
5. libssl-dev (optional, for SSL support)
6. libsasl2-dev (optional, for SASL support)
7. liblz4-dev (optional, for LZ4 compression support)
生成rdkafka的链接库
1) Cd rdkafka
2) ./configure
3) make
4) sudo make install
默认在usr/local/lib下生成动态链接库和静态链接库
在usr/local/include下生成头文件
API示例
Example和test文件夹
观察example文件夹下有makefile文件,因此make(自动编译,链接了rdkafka库)之后,生成可执行文件,而且提示如何运行。
备注:
1. C API :src/rdkafka.h
2. C++ API:src-cpp/rdkafkacpp.h
3. 生成API:make docs
4. 默认的配置文件: CONFIGURATION.md
5. librdkafka简介: INTRODUCTION.md
6. 示例应用程序需要链接rdkafka库 -lrdkafka-lz -lpthread -lrt
备注:拷走example文件至另一台服务器上可行???必须有librdkafka的库环境,不然example下make会提示找不到库。Example执行文件依赖kafka的API,即rdkafka库和src下很多的头文件。因此自带rdkafka的动态链接库和相关头文件就可以移植到其他服务器上,如果还是出现找不到库的情况,编辑etc目录下的ld配置文件,将库的路径加入ld配置文件。
于是可以直接用example中的performance执行程序进行性能测试
测试环境:
一个broker,一个topic:test1,一个分区,一个副本
一个分区有一个leader broker,客户端只和leader broker进行交互,非leader broker只是做高可用。
bin/kafka-topics.sh--create --zookeeper localhost:2181 --replication-factor 1 --partitions 1--topic test
Test1:
1) 生产者与消费者都在broker上
2) Produce required.acks=1,0,-1
0:发送完毕,直接返回
1:等分区的leader写完毕,返回
-1:等分区的所有副本同步完毕,返回
3) 100 byte 400万条 消息
总的消息量381MB,统计生产时间,消费时间
Command:
生产者
a)
命令
:
./
rdkafka_performance -P -t test
1
-s 100 -c 4000000 -b localhost:9092
–m "_____________Test1:
One
Brokers:
4000000
msgs:100bytes" -S 1
-a
0
输出结果
:
% 4000000 messages produced (400000000 bytes), 4000000 delivered (offset 0, 0 failed) in 17667ms: 226401 msgs/s and
22.64 Mb/s
, 880 produce failures, 0 in queue, no compression
c)
命令:
./
rdkafka_performance -P -t test
1
-s 100 -c 4000000 -b localhost:9092
-m "_____________Test1:
One
Brokers:
4000000
msgs:100bytes" -S 1
-a
1
输出结果
:
% 4000000 messages produced (400000000 bytes), 4000000 delivered (offset 0, 0 failed) in 17851ms: 224075 msgs/s and
22.41 Mb/s
,
693 produce failures,
0 in queue, no compression
e)
命令:
./rdkafka_performance -P -t test1 -s 100 -c 4000000 -b localhost:9092 -m "_____________Test1:OneBrokers:4000000msgs:100bytes" -S 1 -a 0 -z snappy
输出结果
:
% 299 backpressures for 4000000 produce calls: 0.007% backpressure rate
% 4000000 messages produced (400000000 bytes), 4000000 delivered (offset 0, 0 failed) in 17456ms: 229141 msgs/s and
22.91 Mb/s
, 299 produce failures, 0 in queue,
snappy compression
消费者
a)
命
令
:
./rdkafka_performance -C -t test1 -p 0 -b localhost:9092 -c 4000000
-B 1
-o beginning
输出结果:
此处省略
% 4000000 messages (399999621 bytes) consumed in
32432ms
:
123333 msgs/s
(
12.33 Mb/s
)
% Average application fetch latency: 8us
结果说明
:一条条的取消息,去
381MB
数据,大概需要
30s
,吞吐量是
12MB/s
c)
命令
:
./rdkafka_performance -C -t test1 -p 0 -b localhost:9092 -c 4000000
-B
20
-o beginning
输出结果:
% 4000000 messages (399999621 bytes) consumed in 32114ms: 124555 msgs/s (
12.46
Mb/s)
% Average application fetch latency: 8us
结果表明
:设置成批量为
20
后,消费速度提高了一点点
e)
./rdkafka_performance -C -t test1 -p 0 -b localhost:9092 -c 4000000
-B
2000
-o beginning
% 4000000 messages (399999621 bytes) consumed in 32038ms: 124850 msgs/s (
12.49
Mb/s)
% Average application fetch latency: 8us
结果表明:消费速度提高了一点点
f)
./rdkafka_performance -C -t test1 -p 0 -b localhost:9092 -c 4000000
-B
200000
-o beginning
结果说明,最大可以达到
22.87Mb/s
,
但是不稳定。
g)
./rdkafka_performance
-C
-t test1 -p 0 -b localhost:9092 -B 2000 -o beginning
./rdkafka_performance
-P
-t test1 -s 100 -c 1000000000 -b localhost:9092 -m "_____________Test1:OneBrokers:4000000msgs:100bytes" -S 1 -a 1
结论:消费者一直运行,从头获取消息,生产者生产消息,消费者速度
12Mb/s,
生产速度
23Mb/s
- rdkafka性能测试小结
- web 性能测试小结
- 小结--性能测试步骤
- 性能测试小结
- 性能测试小结
- HBase性能测试小结
- 性能测试小结
- 银行性能测试项目小结
- 性能测试个人经验小结
- 虚拟机性能测试工具小结
- H5前端性能测试小结
- 性能测试----启动时间测试小结
- apache2配置优化以及性能测试小结
- 旺旺IM广告投放性能测试小结
- apache2配置优化以及性能测试小结
- apache2配置优化以及性能测试小结
- 关于性能测试的一些个人小结
- apache2配置优化以及性能测试小结
- dom4j_使用
- 批处理递归删除当前目录下特定文件
- Hibernate_面试中最常考察的知识点整合
- PE修复Windows系统密码
- JS_7个JavaScript简写技巧
- rdkafka性能测试小结
- iOS 带渐变背景动画的折线统计图
- 【LeetCode】500.Keyboard Row_EASY(三)
- 读过的最好的 C++ 开源代码
- C++在命名空间中声明类和成员函数
- 工作便签1
- ftp_文件上传Util
- f:Grid
- 微信小程序第三天(布局:栅格布局)