我正在使用kafka-streams,并且off heap内存使用量增长到了机器的物理极限。但是,当在docker中运行kafka-streams时,内存使用量会超过容器的限制,因此容器会被OOM杀死。
我的假设是rocksdb正在分配关闭堆空间。 -Xmx可用于限制堆使用,但我找不到类似于rockdb off heap使用的任何东西。
rocksdb如何检测物理内存限制,是否有办法在容器中模拟此限制?
这是内存碎片问题。
您可以通过设置环境变量MALLOC_ARENA_MAX=2
或将内存分配器从glibc更改为jemalloc来调整glibc内存分配器。