kafka压力测试及调优

Kafka压测可以查看到哪个地方出现了瓶颈(CPU,内存,网络IO),一般都是网络IO达到瓶颈。
创建一个测试主题

kafka-topics --create --partitions 12 --replication-factor 1 --zookeeper node3:2181 --topic test

生产者压力测试

sh /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/bin/kafka-producer-perf-test --topic test --record-size 2048 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=node3:9092,node4:9092,node5:9092

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

消费者压力测试

/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/kafka/bin/kafka-consumer-perf-test.sh \
--broker-list node3:9092,node4:9092,node5:9092 \
--topic test --threads 1 --fetch-size 10000 --messages 1000000

说明
● broker-list broker节点列表
● fetch-size 每次fetch的数据的大小
● messages 共消费的消息数

若是kafka集群达不到性能需求,可以做分区扩容,增加并行度,以此提高吞吐量

Kafka分区扩容
并对下游flink程序调大并行度,kafka分区数=flink并行度

sh /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/bin/kafka-topics --partitions 24 --alter --zookeeper node3:2181,node4:2181,node5:2181 --topic test

Kafka调优

CM页面kafka配置调优

num.network.threads=cpu核数+1 #网络通信处理线程数,默认值3
num.io.threads=cpu核数*2 #io磁盘io处理线程数,默认值8
replica.lag.time.max.ms= 30s # 如果网络不好,或者kafka集群压力较大,会出现副本丢失,然后会频繁复制副本,导致集群压力更大,此时可以调大该参数,默认值10s
broker_max_heap_size #堆内存大小,默认4G
batch.size=1M #默认16KB
buffer.memory=64M #默认32M

producer方
compression.type=snappy #数据压缩,默认不压缩,配置一种适合的压缩算法,可以大幅度的减缓网络压力和Broker的存储压力。

consumer方
//增大poll数量, 默认500拉取数量
//fetch.max.bytes 每个批次fetch的大小 默认50m
//拉取的周期

ZooKeeper调优
ZooKeeper Server 的 Java 堆栈大小(字节),8G
maxClientCnxns (最大客户端连接数),默认1024,改成2048

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka 3.4.0 是一个比较老的版本,但是参数的方法基本上和较新版本相同。下面是一些可以考虑的参数: 1. 增加分区数:增加分区数可以提高 Kafka 集群的吞吐量。但是,增加分区数也会增加管理和维护的复杂性。在增加分区数之前,需要评估分区数对集群的影响。 2. 整副本数:副本数决定了数据的冗余度,也影响了 Kafka 集群的可用性。增加副本数可以提高数据的可靠性,但是也会增加网络带宽的使用和磁盘空间的占用。在整副本数之前,需要评估副本数对集群的影响。 3. 整 batch.size 和 linger.ms:batch.size 和 linger.ms 参数控制了消息发送的批处理方式。batch.size 参数控制了批处理的消息数量,linger.ms 参数控制了消息在缓冲区中等待的时间。整这些参数可以提高 Kafka 集群的吞吐量。 4. 增加 JVM 堆内存:Kafka 使用 JVM 运行,因此增加 JVM 堆内存可以提高 Kafka 集群的性能。但是,增加 JVM 堆内存也会增加 GC 的开销。在增加 JVM 堆内存之前,需要评估 JVM 堆内存对集群的影响。 5. 整网络缓冲区大小:Kafka 使用网络传输消息,因此整网络缓冲区大小可以提高 Kafka 集群的性能。但是,整网络缓冲区大小也会增加网络带宽的使用。在整网络缓冲区大小之前,需要评估网络缓冲区大小对集群的影响。 这些都是一些常见的参数方法,但是对于不同的 Kafka 集群,需要根据实际情况进行整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值