Kafka性能压测

Flink-Kafka性能压测全记录

2.1 Producer相关参数
   我们在producer涉及到性能的关键因素可能会存在如下几个:

thread:我们测试时的单机线程数;
bath-size:我们所处理的数据批次大小;
ack:主从同步策略我们在生产消息时特别需要注意,是follower收到后返回还是只是leader收到后返回,这对于我们的吞吐量影响颇大;
message-size:单条消息的大小,要在producer和broker中设置一个阈值,且它的大小范围对吞吐量也有影响;
compression-codec:压缩方式,目前我们有不压缩,gzip,snappy,lz4四种方式;
partition:分区数,主要是和线程复合来测试;
replication:副本数;
througout:我们所需要的吞吐量,单位时间内处理消息的数量,可能对我们处理消息的延迟有影响;
linger.ms:两次发送时间间隔,满足后刷一次数据。

2.2 Consumer相关参数

thread:我们测试时的单机线程数;
fetch-size:抓取数据量;
partition:分区数,主要是和线程复合来测试;
replication:副本数;
througout:我们所需要的吞吐量,单位时间内处理消息的数量,可能对我们处理消息的延迟有影响;

2.3 Broker相关参数

num.replica.fetchers:副本抓取的相应参数,如果发生ISR频繁进出的情况或follower无法追上leader的情况则适当增加该值,但通常不要超过CPU核数+1;
num.io.threads:broker处理磁盘IO的线程数,主要进行磁盘io操作,高峰期可能有些io等待,因此配置需要大些。建议配置线程数量为cpu核数2倍,最大不超过3倍;
num.network.threads:broker处理消息的最大线程数,和我们生产消费的thread很类似主要处理网络io,读写缓冲区数据,基本没有io等待,建议配置线程数量为cpu核数加1;
log.flush.interval.messages:每当producer写入多少条消息时,刷数据到磁盘;
log.flush.interval.ms:每隔多长时间,刷数据到磁盘;

kafka-producer-perf-test.sh 脚本命令的参数解析(以100w写入消息为例):
–topic topic名称,本例为test_perf
–num-records 总共需要发送的消息数,本例为100000
–record-size 每个记录的字节数,本例为1000
–throughput 每秒钟发送的记录数,本例为5000 ,-1表示不限流
–producer-props bootstrap.servers=localhost:9092

./kafka-producer-perf-test.sh --topic test_kafka_perf1 --num-records 100000000 --record-size 687 --producer-props bootstrap.servers=10.240.1.134:9092,10.240.1.143:9092,10.240.1.146:9092 batch.size=10000 --throughput 30000

kafka-consumer-perf-test.sh 脚本命令的参数为:
–zookeeper 指定zookeeper的链接信息,本例为localhost:2181 ;
–topic 指定topic的名称,本例为test_perf,即4.2.1中写入的消息;
–fetch-size 指定每次fetch的数据的大小,本例为1048576,也就是1M
–messages 总共要消费的消息个数,本例为1000000,100w
以本例中消费100w条MQ消息为例总共消费了953.66M的数据,每秒消费数据大小为177.19M,总共消费了10000004条消息,每秒消费185804.53条消息。

./kafka-consumer-perf-test.sh --zookeeper 110.240.0.9:2181,10.240.0.10:2181,10.240.0.13:2181/kafka --topic test_kafka_perf1 --fetch-size 1048576 --messages 100000 --threads 1 --hide-header --num-fetch-threads 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用JMeter进行Kafka压测,您可以按照以下步骤进行操作: 1. 首先,您需要了解什么是KafkaKafka是一个分布式流处理平台,具有高吞吐量、持久性和可扩展性等特点。 2. 接下来,您需要下载Apache JMeter并安装它。您可以从官方网站https://jmeter.apache.org/下载JMeter。 3. 您还需要下载Kafka的JMeter插件,该插件可以帮助您在JMeter中进行Kafka压测。您可以从插件作者提供的地址下载插件的jar包,并将其放入JMeter文件夹下的lib/ext目录中。 4. 确保您已经正确安装了JMeter和Kafka插件之后,您可以打开JMeter并创建一个新的测试计划。 5. 在测试计划中,您需要添加一个Thread Group元素,用于定义并发用户的数量和循环次数。 6. 然后,您需要添加一个Kafka Producer Sampler元素,用于发送消息至Kafka集群。在该元素的配置中,您需要指定Kafka的相关配置参数,如Kafka服务器的地址、主题名称和消息内容等。 7. 接下来,您可以根据需要添加其他的Sampler元素,如Kafka Consumer Sampler用于消费Kafka的消息。 8. 最后,您可以运行测试计划并查看测试结果。JMeter将模拟指定数量的并发用户发送消息至Kafka,并记录相关的性能指标,如吞吐量和响应时间等。 通过以上步骤,您可以使用JMeter进行Kafka压测,并获得相关的性能数据来评估Kafka性能表现。引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [如何使用Jmeter对Kafka进行性能测试](https://blog.csdn.net/shan286/article/details/105216381)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值