访问Kafka流的KTable底层RocksDB内存使用情况

时间:2019-02-15 01:20:24

标签: apache-kafka apache-kafka-streams rocksdb

我有一个kafka流应用程序,该应用程序目前包含3个主题并将它们聚合到KTable中。该应用程序位于马拉松的Scala微服务中,该服务已分配了512 MB的内存以供使用。实施此操作后,我注意到运行微服务的docker容器最终用完了内存,并试图调试原因。

我目前的理论(在阅读大小调整指南https://docs.confluent.io/current/streams/sizing.html的过程中)认为,随着时间的流逝,存储在KTable中的记录的增加以及作为扩展的基础RocksDB导致了微服务的OOM。有什么方法可以找出底层默认RocksDB实现所使用的内存吗?

1 个答案:

答案 0 :(得分:2)

万一有人遇到类似问题,设置环境变量MALLOC_ARENA_MAX = 2似乎已经为我解决了。有关原因的更详细说明,请参阅“为什么内存分配器有所作为?”部分。和“ Tuning glibc”在这里:https://github.com/prestodb/presto/issues/8993