繁体   English   中英

org.apache.kafka.common.network.Selector - 导致 OOM

[英]org.apache.kafka.common.network.Selector - Leading to OOM

所以我有一个 Java 服务,它在 while 循环中使用kafka-clients sdk 从 Kafka 主题中获取。 在执行大约 3-5 分钟后,我在运行单个使用者时遇到了 OOM(内存不足)问题。

我捕获了一个 Heap Dump,它指向org.apache.kafka.common.network.Selector持有分配的内存。 最终我得到GC overhead limit exceeded错误。

堆转储图像

我遵循以下两个资源但没有运气,因为我的问题似乎与 SSL 无关(我使用的是纯文本)。

卡夫卡吉拉

调试 Apache Kafka® 中的内存泄漏

以下是我的一些 kafka 属性:

connections.max.idle.ms = 540000
default.api.timeout.ms = 60000
enable.auto.commit = true
exclude.internal.topics = true
fetch.max.bytes = 52428800
fetch.max.wait.ms = 500
fetch.min.bytes = 1
max.partition.fetch.bytes = 20000000
max.poll.interval.ms = 30000
max.poll.records = 1000

可能已经想通了:

当我的消费者连接到代理时,属性fetch.max.bytes默认为52428800 ,每批 52MB。

我的消费者每 100 毫秒轮询一次。 我假设这个频率,加上每个批次的大小,让垃圾收集器不堪重负。 我将此参数修改为更合理的数字,现在一切似乎都正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM