标签:10000 log interval 写入 kafka flush 磁盘 经验总结
先说结论:调整集群参数
# 每当producer写入10000条消息时,刷数据到磁盘 log.flush.interval.messages=10000
# 每间隔1秒钟时间,刷数据到磁盘 log.flush.interval.ms=1000
好久没有更新了,
沣哥给介绍了个对象,也不知道能不能成,看的看不上咱0.0
回归主题,前几天领导给我派了个活,说客户的kafka消费速度有问题,派我出差去排查一下,我到了现场后先梳理了一下数据链路,一个服务(二进制数据流)->kafkatopic1->kafkatopic2->flink->DB
大概的数据链路是这样的。
排查思路:
1.消费数据没有积压
我先是看一下消费数据有没有积压,没有积压就意味着消费是没有问题的,毕竟绝大多数的kafka问题还是消费速度这里。
2.确认问题所在
顺序其实是有问题的,我按照常规思路去排查kafka问题,而忽略了客户本身的猜想,客户觉得kafka的集群有问题。
于是我们使用kafka自带的压测脚本进行测试,发现的确当前的吞吐量和集群配置不相符(5台机器,48c200g),每台机器的磁盘有9块,客户的要求是吞吐量达到100w条每秒,对应的消费速度就是大约要在150M/s的吞吐速度。
问题解决:
我们看了一下挂在磁盘,发现只用了4块磁盘,其他5块并没有使用,于是把其他5块磁盘也挂了上去。
master到broker网络通信延迟较低,broker之间网络通信不稳定,有时延迟较高,这个需要运维同学去排查了
重点来了,换参数
有些参数没有起效果,所以就不提了,只写有效果的
# 每当producer写入10000条消息时,刷数据到磁盘 log.flush.interval.messages=10000
# 每间隔1秒钟时间,刷数据到磁盘 log.flush.interval.ms=1000
两个都调整了,尤其是把写入数据的那个调的很大,确实非常有效,提升了很大的吞吐量,同时也造成了延迟性的略微提高,这个是没有办法的,因为我们要求的吞吐量太大了,上面一直飞快的向kafka刷盘,这样调整后每次向kafka刷的数据多了,降低了次数,从而很大程度上提高的吞吐。
具体参数的调整还是要具体情况,真实的生产环境才是最有说服力的方法。
实践是检验真理的唯一途径
标签:10000,log,interval,写入,kafka,flush,磁盘,经验总结 来源: https://blog.csdn.net/qq_33892563/article/details/121305916
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。