8

kafka消费者内存一直上涨

 2 years ago
source link: https://www.oschina.net/question/4175317_2324548
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

kafka消费者内存一直上涨

Allen吴 发布于 11/29 15:14
阅读 462

spring-kafka    版本:1.3.4.RELEASE

消费者三台机器(每台内存不到8G),消费10几个topic,每个topic 3个分区

up-93ec31d50e558148f8ead17afc2000c40e4.png

为什么内存一直上升,不释放

以下是问题补充:

@Allen吴:消息大量堆积,消费者内存上升很快 (昨天 16:50)
纳兰清风
11/29 20:22

遇到这种情况难道不应该用jmap,jstat等工具进行分析么?

纳兰清风
昨天 17:46
回复 @Allen吴 : 多大流量啊,几台机器消费啊
纳兰清风
昨天 17:45
回复 @Allen吴 : 看是full gc还是young gc。young gc的话通过扩内存,扩展消费并行度,即多加几个机器一起消费来解决,full gc多说明有大对象,或内存泄漏,对了,KafkaConsumer不正常close会内存泄漏
Allen吴
前天 10:22
分析了,感觉是内存释放跟不上消费的速度
freezingsky
前天 10:05

大多数这种情况,都是自己业务代码有坑

Allen吴
前天 10:23
代码中也在不断的把一些大对象设置为null,还是稳步上升
却又让幽兰枯萎
前天 15:17

发的太猛了吧,我之前也遇到过,改了过期时间,设置得很小了,内存还是一直不断向上增长,后来放弃了这个,使用其他方案

却又让幽兰枯萎
今天 09:23
回复 @Allen吴 : 之前我做的是视频分析,一个解码一个进行推理,解码的速度基本上是每秒25帧左右,我把每一帧图像进行发布,推理这一端订阅接受,初步判断是接受不过来,解码停了二十几秒,这边还在接受,后来我没有尝试了,直接把解码和推理合并在一个项目里面了,另外有一个朋友尝试用redis好像据说也可以订阅发布,但是也有相同的问题,如果不是非要使用分布式没得必要使用像kafka和redis这样的东西
Allen吴
昨天 16:49
topic里都是业务线的一些异常日志,很多都是堆栈异常信息,是不是内存的释放赶不上消费的速度,是否有必要扩大分区,增加消费者,内存是否要加。还有你使用了其他什么方案。
Allen吴
今天 10:43

引用来自“纳兰清风”的评论

遇到这种情况难道不应该用jmap,jstat等工具进行分析么?

up-1f4a3c1d7519ac0dc96592fd018aab9617f.png

yongk
今天 11:25

一些push类型的MQ,都有prefetch特性,就是broker会多push一些msg给consumer,来提高吞吐量,这些在consumer端还没来得及处理的msg就占用consumer的内存。

但Kafka是pull类型的MQ,你看看会不会是类似的问题,kakfa为了提高吞吐量有没有相关设置。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK