專案場景:
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 索引分片數提升
后續待觀察
參考文章 消費速率排查
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423705.html
標籤:其他
上一篇:超全筆記:HDFS,MAPREDUCE,YARN,HIVE
下一篇:企業上云的好處
