@

Kafka压测

用Kafka官方自带的脚本,对Kafka进行压测。Kafka压测时,可以查看到哪个地方出现了瓶颈==(CPU,内存,网络IO)。一般都是网络IO达到瓶颈。 ==

使用下面两个kafka自带的脚本

  • kafka-consumer-perf-test.sh
  • kafka-producer-perf-test.sh

Kafka Producer(生产)压力测试

进入kafka的安装目录,执行下面的命令

[sun@hadoop102 kafka]$ bin/kafka-producer-perf-test.sh  --topic test --record-size 100 --num-records 100000 --throughput -1 --producer-props bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092

说明:

  • record-size是一条信息有多大,单位是字节。
  • num-records是总共发送多少条信息。
  • throughput是每秒多少条信息,设成-1,表示不限流,可测出生产者最大吞吐量。

输出:

参数解析:本例中一共写入10w条消息,吞吐量为1.45 MB/sec,每次写入的平均延迟为1718.17毫秒,最大的延迟为3564.00毫秒。

Kafka Consumer(消费)压力测试

Consumer的测试,如果这四个指标(IO,CPU,内存,网络)都不能改变,考虑增加分区数来提升性能。

进入kafka的安装目录,执行下面的命令

[sun@hadoop102 kafka]$ bin/kafka-consumer-perf-test.sh --broker-list hadoop102:9092,hadoop103:9092,hadoop104:9092 --topic test --fetch-size 10000 --messages 10000000 --threads 1

参数说明:

--zookeeper 指定zookeeper的链接信息

--topic 指定topic的名称

--fetch-size 指定每次fetch的数据的大小

--messages 总共要消费的消息个数

输出:

  • start.time 开始时间:2021-01-27 13:55:20:963
  • end.time 结束时间:2021-01-27 13:55:36:555
  • data.consumed.in.MB 共消费数据:22.1497MB
  • MB.sec 吞吐量:1.4206MB/sec
  • data.consumed.in.nMsg 共消费消息条数:232256条
  • nMsg.sec 平均每秒消费条数:14895.8440条

计算Kafka分区数

  • 创建一个只有1个分区的topic
  • 测试这个topic的producer吞吐量(1.45m/s)和consumer吞吐量(1.42m/s)。数据来自上面的压测
  • 假设他们的值分别是Tp和Tc,单位可以是MB/s。 4)然后假设你期望的目标吞吐量是Tt(10m/s),那么分区数=Tt /min(Tp,Tc) ,这里取最小值是因为使最低的吞吐量都能达到期望的吞吐量。
  • 例如:producer吞吐量=20m/s;consumer吞吐量=50m/s,期望吞吐量100m/s;
  • 分区数=100 / 20 =5分区 5)分区数一般设置为:3-10个

Kafka机器数量计算

  • Kafka机器数量(经验公式)=2 (峰值生产速度副本数/100)+1
  • 先拿到峰值生产速度,再根据设定的副本数,就能预估出需要部署Kafka的数量。 副本数默认是1个
  • 在企业里面2-3个都有,2个居多。
  • 比如我们的峰值生产速度是50M/s(一般不超过50M/s)。生产环境可以设置为2。 Kafka机器数量=2(502/100)+1=3台
  • 副本多可以提高可靠性,但是会降低网络传输效率。

最新文章

  1. .net erp(办公oa)开发平台架构之流程服务概要介绍
  2. Android系列:res之shape制作
  3. linux nginx 启动脚本
  4. 备忘DES带向量的加密和解密与DES简单加密与解密
  5. Kids and Prizes(SGU 495)
  6. OC基础(11)
  7. python ndentationError: unexpected indent
  8. hdu 3743 树状数组
  9. C#基础整理
  10. Eclipse插件Subclipse各版本插件下载地址以及与Subverison的对应关系
  11. 导出Unity场景为配置文件
  12. 菜鸟nginx源码剖析 框架篇(一) 从main函数看nginx启动流程(转)
  13. asp.net 操作XML
  14. HDU 1969 Pie(二分搜索)
  15. 【LightOJ1370】Bi-shoe and Phi-shoe(欧拉函数)
  16. request 获取body内容
  17. [RESTful] DHC Client
  18. Delphi 10-10.2.2启动提示JS错误的解决办法
  19. C 几何水题 求不同斜率的数目 枚举+set
  20. js旋转V字俄罗斯方块

热门文章

  1. 在Linux中要修改一个文件夹或文件的权限
  2. vue element ui 上传 请求接口
  3. ADF 第六篇:Copy Data Activity详解
  4. java中产品分类返回给前台页面 后台数据组装
  5. tcp上传学习二--文本文件上传
  6. 第六章节 BJROBOT 动态导航壁障
  7. 熬夜肝了一周!总结了这套对标阿里P8的java秘籍,限时发布3天!
  8. Nebula Exchange 工具 Hive 数据导入的踩坑之旅
  9. springboot异常处理之404
  10. Spring Security OAuth2.0认证授权五:用户信息扩展到jwt