记一次 Kafka Producer 性能调优实战

一次Kafka调优总结 一般来说,一个kafka集群中,总的partitions数不应该超过3000,针对大流量的topic,建议一个消费组对应一个topic,而partition至少保证一个磁盘上放一个partition,比如12块盘,那就创建12个partition的topic,kafka会自动将parition目录均匀分配到各个磁盘,前提是kafka配置了多目录挂载多磁盘。,默认10 sec)。3、磁盘是否足够,若磁盘大小或磁盘IO满足不了流量要求,会造成io等待时延,从而影响kafka的处理速度,客户端会出现超时的报错。 阅读详情

记一次 Kafka Producer 性能调优实战

https://objcoding.com/2020/09/18/kafka-producer-performance-optimization/


最近,遇到某个集群的生产端发送延迟特别高,而且吞吐量上不去,检查集群负载却很低,且集群机器配置非常好,网络带宽也很大,于是使用 Kafka 压测脚本进行了压测。

昨天凌晨,在生产环境进行实战调优,经过不断参数改动,现将生产者相关参数设置为以下配置:

linger.ms=50
batch.size=524288
compression.type=lz4
acks=1(用户要求消息至少要发送到分区 leader)
max.request.size=5242880
buffer.memory=268435456

在生产环境的一台服务器上,使用以上参数对集群进行生产发送性能压测:

从上图可以看到,使用平均 4k 大小的消息体对集群进行压测,单个 Producer 平均吞吐量达到 2000MB/s,50w/s+!

作为对比,我还是使用同一台服务器,将调优参数去掉,再压一遍:

可以看到,最高的吞吐量也不过 500M/s,最低已经来到 2M/s 了。

虽然说实际客户端环境比压测环境复杂很多,但是使用压测工具已经能够证明,该集群的负载目前现在还远远没有达到瓶颈,且生产端还有待优化。

以上参数调优思想是:

1、buffer.memory=268435456

由于发送端发送频率非常快,加上由于 Spark 客户端频繁断开连接导致生产端 Sender 线程发送延迟增高,这就会造成客户端发送速率 > Sender线程的发送速率。

它们之间会有一个缓冲池,如果客户端发送速率 > Sender 线程的发送速率,缓冲池会很快塞满,阻塞当前发送进程,导致发送延迟增高。

注:如果 Java 进程的堆内存大小允许,可以适当再调大一些。

2、batch.size=524288

我们的客户端消息大小普遍 4k 左右,而 batch.size 默认大小为 16k,如果直接使用默认的大小,每个批次很容易被塞满,达不到缓冲的作用。而且,如果消息大小 > batch.size,则缓冲池不会对该消息产生作用,导致内存频繁被 JVM GC 回收,具体详情请看这篇文章:「深度剖析 Kafka Producer 的缓冲池机制【图解 + 源码分析】」。

3、max.request.size=5242880

该参数主要作用是限定每次发送到 broker 的数据大小,默认值为 1M,如果太小,会导致生产端与 broker 的网络交互增多,加上加上由于 Spark 客户端频繁断开连接导致生产端 Sender 线程发送延迟增高。

如上图,当 max.request.size=5242880 时,请求 broker 发送的数据量不大于 max.request.size。

如果频繁地进行网络交互,延迟也会随之增高,该值可以根据集群网络带宽适当设置更大一些,我们的集群带宽非常充足,可以适当再调大些。

4、linger.ms=50

为了防止某些时候发送速率很低,batch 没有装满导致不发送消息的情况,需要适当调整该值,与 batch.size 的大小适当调整为最佳大小。

注:以上参数仅仅是根据我的生产集群实际情况给出的值,具体参数还是需要结合你的集群本身的情况,机器的配置,网络的带宽不同,都会影响参数的值。

Kafka Producer通过参数调优提高数据发送速度 1. 前言 最近项目现场发生了 日志文件积压的情况,日志文件的大概处理流程是:读取日志文件->进行结构化->发送到 kafka 以一个 7.57M的日志文件为例(约58400条日志信息),程序需要 16.8s才能将其处理完,也就是说平均每秒只能处理约 3500条数据,经过验证,其中瓶颈在数据发送到 Kafka这一步。这个根据经验,明显肯定是没有达到 Kafka的瓶颈的,应该是自己 producer程序有问题,于是去 Kafka官网一查: Single producer thread, 3x a 阅读详情

相关推荐

如何调优Kafka

Kafka调优的核心目标是提升吞吐量(TPS)和降低延时。吞吐量指每秒处理的消息数或字节数,延时则指消息从发送到持久化或消费的耗时。调优时可采用批次化处理策略,通过适当增加少量延时(如从2ms增至10ms)换取吞吐量的大幅提升(如从500条/秒提升至100,000条/秒),这种权衡在实际场景中往往可接受,因为内存操作远快于网络I/O。优化漏斗表明,合理设计可显著改善系统性能。

技术与业务融合思维 1316

Kafka 单个节点每秒 2000万 条消息,吞吐量达到每秒 600MB,Kafka 为什么这么快?如何做到这么高的性能?...

文章来源:https://juejin.cn/post/7134463012563320868有人说:他曾在一台配置较好的机子上对 Kafka 进行性能压测,压测结果是 Kafka 单个节点的极限处理能力接近每秒 2000万 条消息,吞吐量达到每秒 600MB。那 Kafka 为什么这么快?如何做到这个高的性能?本篇文章主要从这 3 个角度来分析:生产端服务端 Broker消费端先来看下生产端发送...

架构师小秘圈 8184

Producer 性能调优公式及验证

背景 Kafka的Producer有很多的参数可以影响到Producer的写性能. 大多数人应该会对这些参数比较困惑, 往往会混淆名称相似的参数; 即使能够区分每个参数的意义,也很难知道如何通过组合这些参数达到Producer的比较高的性能. 本人通过研究源码加上实践和思考,总结出了一个计算Producer的吞吐的公式, 这个公式包含Producer端重要的调优的参数,可以帮助大家直观

美伊小公主的超级奶爸的专栏 1386

Kafka:提高生产者吞吐量

Kafka:提高生产者吞吐量

程序员无羡的博客 162

kafka中文文档producer配置参数

NULL 博文链接:https://bewithme.iteye.com/blog/2395262

保姆级教程:断网环境下用Flexnet服务器搞定SolidWorks 2021安装与破解(附错误5解决方案)

本文提供SolidWorks 2021在断网环境下的企业级部署指南,详细解析Flexnet服务器本地化工作原理,并给出安装与破解的实战方案,特别针对常见的'错误5'问题提供多维度解决方案。适用于需要内网隔离或移动办公的工业设计场景,确保数据安全与授权合规。

weixin_28683391的博客 302

KafKa -相关参数优化

broker 处理消息的最大线程数,默认为 3,建议设为 cpu 核数 + 1:例如:cpu 核数 8 : 2. 处理磁盘 IO 的线程数 broker 处理磁盘 IO 的线程数,建议设为 cpu 核数 x 2 :例如:cpu 核数 8: 3. 数据落盘策略 Kafka重度依赖底层操作系统提供的功能。当上层有写操作时,操作系统只是将数据写入,同时标记属性为。当读操作发生时,先从中查找,如果发生缺页才进行磁盘调度,最终返回需要的数据。实际上是把尽可能多的空闲内存都当做了磁盘缓存来使用。但是也带来了问题,如果此

小毕超博客 5465

educoder 5-3Python 计算思维训练——地图模拟

任务描述 本关任务:利用 Python 实现动画观察近 30 天 4.5 级以上地震发生情况。 相关知识 为了完成本关任务,你需要掌握:1.如何用 Python 从网络获取所需数据;2.如何用 Python 绘制地图 从网络获取数据 URL 处理模块(库) 在这里插入代码片 import urllib.request as req 创建一个表示远程 url 的类文件对象 urllib.urlopen(" ") 如同本地文件一样读取内容 print data的输出结果: 摘取动画所需数据

Manonll的博客 2488

Kafka生产者性能调优技巧

Kafka是一个分布式流平台,是由LinkedIn开发的一个开源项目。Kafka采用发布-订阅模式,消息的发送者称为“生产者”,消息的接收者称为“消费者”。Kafka以高吞吐量、可靠性和存储容量等优点,成为了大规模实时数据处理的首选。在Kafka中生产者将消息发布到一个Topic(主题)中,并且可以在多个Partition(分区)之间切分这些消息。每个Partition中的数据都具有顺序,因此能够保证键相同的消息被写入到同一个Partition中。

BXA 3565

两层板如何做阻抗控制呢

两层板如何做阻抗控制呢? 这个问题可能很多人都会碰到,有的人在此等需要做阻抗控制的情况都选择做多层板。诚然,多层板在阻抗控制,EMC等等方面都有着天然的优势。然而,在价格上和周期上,两层板就有着绝对优势了。 对于成本非常敏感而又不是太复杂的产品,尽管对于我们硬件工程师而言,有一堆的理由要求使用多层板。然而在面对毛都不懂的老板“别人能做,你为什么不能做?”这个问题时只得低下我们高傲的头颅。 好...

weixin_42005993的博客 2万+

R语言实战:GEO单细胞数据下载与自动化整理全流程(附代码)

本文详细介绍了使用R语言从GEO数据库下载scRNA-seq数据并实现自动化整理的完整流程。通过GEOquery和Seurat等工具包,读者可以高效获取单细胞RNA测序数据,完成从原始数据下载到预处理的全过程,最终生成可直接用于分析的Seurat对象。文章包含完整代码示例,特别适合生物信息学研究者处理单细胞数据。

weixin_29061821的博客 429

Kafka精进 | Producer端核心参数及调优建议

前言在前面文章《Kafka精进 | 一文读懂Producer消息发送机制》中,我们从Kafka消息结构、序列化器、分区器及消息缓冲池等方面介绍了Producer端的原理,回顾示意图如下:...

Focus on Lakehouse 567

Python量化交易实战:pytdx库高效获取通达信分笔成交数据

本文详细介绍了如何使用Python的pytdx库高效获取通达信分笔成交数据,为量化交易提供关键市场微观结构分析。通过环境搭建、服务器连接、数据获取与清洗的完整流程,帮助开发者快速掌握这一免费高质量数据源,并实现分笔数据的实战分析与应用。

weixin_29061509的博客 1352

Kafka 性能调优指南:Producer与Broker篇

Kafka Producer 是写入性能的起点,优化 Producer 直接影响系统的吞吐与延迟表现。Apache Kafka 作为高吞吐、高可用的消息系统,在大规模生产环境中广泛应用。Kafka Broker 是整个系统的数据中转站,调优 Broker 对整体性能影响深远。默认值较小(16384 字节),在高吞吐场景中可以调大(如 64KB 或更高)往往是保障其稳定运行的核心环节。,建议在实际部署中结合压测与监控,逐步调试参数,达到最优值。,详解调优策略与原理,帮助你在高并发场景中稳定“飙车”。

小健学Java的博客 1625

手把手教你用示波器抓取MIPI D-PHY波形:从LP11到HS Burst的完整信号解析

本文详细介绍了使用示波器精准捕获MIPI D-PHY信号的关键技巧,包括探头选择、示波器参数设置、信号状态解析及高级触发配置。通过实战案例和波形分析,帮助工程师快速识别从LP11到HS Burst的各种信号状态,解决常见的信号完整性问题,提升调试效率。

weixin_30471561的博客 563

Unraid小白必看:5分钟搞定OpenWrt软路由安装(附iStoreOS配置技巧)

本文为Unraid新手提供了一份详尽的OpenWrt软路由安装与配置指南。通过虚拟机技术,在Unraid系统上快速部署基于iStoreOS的软路由,详细讲解了旁路由与主路由两种模式的网络配置、性能优化技巧及常见故障排查方法,帮助用户充分利用闲置硬件,打造高性能、可定制的家庭网络中枢。

wine的专栏 486

kafka性能调优

kafka是一个高吞吐量分布式消息系统,并且提供了持久化。其高性能的有两个重要特点: 利用了磁盘连续读写性能远远高于随机读写的特点; 并发,将一个topic拆分多个partition。 同一个ConsumerGroup内的Consumer和Partition在同一时间内必须保证是一对一的消费关系任意Partition在某一个时刻只能被一个Consumer Group内的一个Consumer消费(反过

#include<?> 3万+

PD详解 扩展消息——Source_Capabilities_Extended Message

PD的协议层分为控制消息,数据消息还有扩展消息,今天大师匈讲一下扩展消息中的source_cap_extended。这个消息在扩展消息中算是比较关键的东西。 扩展消息中的source_cap_extended 大师匈先上图,然后逐一解释; 上面的图表说了source_cap_ext中包含了哪些内容。 我们注意到在source_cap扩展消息中是以字节为单位的,并不是像source_cap中以一个object为单位,当然有注意到PD标准spec中说明的扩展消息的话,那里有说明,在header之后的字节

大师匈的博客 3521

Kafka参数调优

1.broker Kafka性能调优 kafka性能调优 2. producer buffer.memory:33554432 (32m) #在Producer端用来存放尚未发送出去的Message的缓冲区大小。缓冲区满了之后可以选择阻塞发送或抛出异常,由block.on.buffer.full的配置来决定。 compression.type:none #默认发送不进行压缩,推荐配置一种适合的压缩算法,可以大幅度的减缓网络压力和Broker的存储压力。 linger.ms:0 #Producer

紫蝶侠的博客 6005

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Kafka 调优

挂载 (Mount) 文件系统时 , 禁掉 atime 更新 (access time,文件最后被访问的时间)Broker 设置堆大小 : 经验值 : JVM 堆大小 = 6~8GB。Broker 端调优 : 保持客户端版本和 Broker 端版本一致。,防止 Linux 的 OOM Killer 随意杀掉进程。JVM 调优 : 设置堆大小/ GC 收集器的选择。生产环境中,用较小的延时,来提升 TPS。GC 收集器用 G1 收集器。

记录点点滴滴 3187

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

rdkafka线程过多_kafka producer性能调优

1. 介绍2. 本文的一些前提讨论的kafka版本为0.10.0没有broker端的再压缩消息都有8字节的时间戳介绍信息3. 优化目标给定一个要发送的数据集,在满足持久性、有序性的前提下优化以下两点:吞吐量延迟优化专注于优化平均性能,这样对所有的producer都有效。4. kafka producer原理回顾4.1 生产者的关键配置batch.size: 基于大小的batching策略linge...

weixin_39848347的博客 1114

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Kafka参数调优(一)-生产者Producer

Producer参数 一、request.required.acks Kafka producer的ack有3中机制,初始化producer时的producerconfig可以通过配置request.required.acks不同的值来实现。 0:这意味着生产者producer不等待来自broker同步完成的确认继续发送下一条(批)消息。此选项提供最低的延迟但最弱的耐久性保证(当服务器发生故障...

Java部落格 5312

云原生时代 Kafka 深度实践:05性能调优与场景实战

本文详细介绍了Kafka性能调优策略及实战场景应用。从Producer端优化(批量发送、压缩算法)、Broker配置(线程池、磁盘管理)到Consumer调优(并行消费、序列化),全方位提升系统吞吐量。实战部分包含三大典型场景:1)高并发日志采集通过多分区和批量配置实现10W+/s写入;2)实时数据分析利用Kafka Streams计算指标,优化缓存和提交间隔;3)金融级事务通过事务消息和幂等消费保障一致性。每种场景均提供具体参数配置和代码实现,为不同业务需求提供针对性解决方案。

qq_60626054的博客 1301

Kafka性能调优

kafka作为时下最流行的开源消息系统,被广泛地应用在数据缓冲、异步通信、汇集日志、系统解耦等方面。相比较于RocketMQ等其他常见消息系统,Kafka在保障了大部分功能特性的同时,还提供了超一流的读写性能。 本文将针对Kafka性能方面进行简单分析,首先简单介绍一下Kafka的架构和涉及到的名词: 1. Topic:用于划分Message的逻辑概念,一个Topic可以分布在多个Broker上。...

菜鸟不会飞 8706

Kafka测试及性能调优详细总结

Kafka性能测试     测试背景   由于业务需求,针对kafka在不同参数下的性能进行测试。从而进行kafka性能调优   测试目标   测试kafka 0.8n的性能(Producer/Consumer性能)。当消息大小、批处理大小、压缩等参数变化时对吞吐率的影响。   测试环境 软件版本:kafka 0.8.1.1 硬件环境:3台多云服务组成的kafka集群

airfish20000的博客 2万+
上一篇: Kafka Consumer如何实现精确一次消费数据
下一篇: kafka性能测试
王树民
博客等级 码龄10年 912粉丝 560原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值