欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

logstash消费延迟瓶颈排查

时间:2023-06-17
项目场景:

logstash某个topic最近消费总是延迟


问题描述:

logstash某个topic消费总是延迟,数据量15k每秒,调整了topic partition和消费进程数之后 改善也不大


原因分析: 逐项排查: 排查kafka机器的磁盘和网卡是否瓶颈
磁盘
iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态


根据磁盘io util和await判断磁盘应该没有瓶颈
网卡:
查看网卡信息

万兆网卡,无瓶颈logstash配置
消费配置设置
pipeline.workers: 40 跟宿主机cpu核数一样
pipeline.batch.size: 1024 单条数据大,尝试过调整更大,调整会频繁出现单次消费超时,导致kafka offset提交失败消费者所在机器的cpu、内存和io情况

内存无压力,cpu id空余,load负载也不高 消费者所在机器资源无压力es:
es集群机器 磁盘 util和await正常
队列recject数正常
初步观察es问题不大
解决方案: logstash消费者配置调整
pipeline.batch.delay: 10 让logstash消费提交更加频繁 吃cpu
配置调整后消费速度少量提升调整topic partition 由80到160 增加消费能力

发现调整之后,作用不明显,是因为延迟的数据都在老的partition里,这里没做重分配,所以消费速度没提升,明早再观察下es 索引分片数提升 因为这个topic消费出来后会根据字段生成很多个索引,这里把所有的索引分片数都增加了,索引是每天生成的,数据量也是每天早上增多,调整完 明早看看情况其他es侧的参数优化等确认消费情况之后在做调整

第二天
消费速度提升,消息基本无延迟
主要调整:
1、logstash消费者配置新增 pipeline.batch.delay: 10
2、调整topic partition 由80到160 增加消费能力
3、es 索引分片数提升

后续待观察
参考文章 消费速率排查

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。