我有一个kafka流应用程序,该应用程序目前包含3个主题并将它们聚合到KTable中。该应用程序位于马拉松的Scala微服务中,该服务已分配了512 MB的内存以供使用。实施此操作后,我注意到运行微服务的docker容器最终用完了内存,并试图调试原因。
我目前的理论(在阅读大小调整指南https://docs.confluent.io/current/streams/sizing.html的过程中)认为,随着时间的流逝,存储在KTable中的记录的增加以及作为扩展的基础RocksDB导致了微服务的OOM。有什么方法可以找出底层默认RocksDB实现所使用的内存吗?
答案 0 :(得分:2)
万一有人遇到类似问题,设置环境变量MALLOC_ARENA_MAX = 2似乎已经为我解决了。有关原因的更详细说明,请参阅“为什么内存分配器有所作为?”部分。和“ Tuning glibc”在这里:https://github.com/prestodb/presto/issues/8993。