kafka消费者内存一直上涨

Allen吴 发布于 2021/11/29 15:14
阅读 666
收藏 0

spring-kafka    版本:1.3.4.RELEASE

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

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

以下是问题补充:

@Allen吴:消息大量堆积,消费者内存上升很快 (2021/12/01 16:50)
加载中
0
纳兰清风
纳兰清风

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

纳兰清风
纳兰清风
回复 @Allen吴 : 内存猛增的最后结果是啥,OOM ?
纳兰清风
纳兰清风
回复 @Allen吴 : 多大流量啊,几台机器消费啊
纳兰清风
纳兰清风
回复 @Allen吴 : 看是full gc还是young gc。young gc的话通过扩内存,扩展消费并行度,即多加几个机器一起消费来解决,full gc多说明有大对象,或内存泄漏,对了,KafkaConsumer不正常close会内存泄漏
Allen吴
Allen吴
分析了,感觉是内存释放跟不上消费的速度
0
f
freezingsky

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

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

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

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

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

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

大佬看下

纳兰清风
纳兰清风
感觉还好啊,也没有full gc,ygc也没有很高,很健康的jvm状态。
0
yongk
yongk

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

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

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部