Flink rocksdb每插槽内存配置问题

ecfdbz9o  于 2022-12-09  发布在  Apache
关注(0)|答案(2)|浏览(197)

I have 32GB of managed memory and 8 task slots. As state.backend.rocksdb.memory.managed is set to true, each rockdb in each task slot uses 4GB of memory. Some of my tasks do not require a rocksdb backend so I want to increase this 4GB to 6GB by setting state.backend.rocksdb.memory.fixed-per-slot: 6000m
The problem when I set state.backend.rocksdb.memory.fixed-per-slot: 6000m is on Flink UI, in task manager page, I cant see the allocated managed memory anymore.
As you can see when state.backend.rocksdb.memory.fixed-per-slot is not set and state.backend.rocksdb.memory.managed: true , 4GB usage appears on managed memory for each running task which uses rocksdb backend.

But after setting state.backend.rocksdb.memory.fixed-per-slot: 6000m , Managed Memory always shows zero!
1- How can I watch the managed memory allocation after setting state.backend.rocksdb.memory.fixed-per-slot: 6000m
2- Should state.backend.rocksdb.memory.managed be set to true even I set fixed-per-slot.

qvtsj1bj

qvtsj1bj1#

我们从Hive得到的另一个答复是:“每槽固定覆盖托管内存设置,因此需要托管零(它是每槽固定或托管)。正如Yuval所写的,您可以通过检查LRU缓存来查看内存示例。还有一件要检查的事情是RocksDB日志文件中的write_buffer_manager指针。如果每槽固定或托管内存都没有使用,并且在示例之间共享,则每个操作符的指针都不同。”
请告知我们此信息是否有用

kq4fsx7k

kq4fsx7k2#

在Discord上与SpeedbHive分享了您的问题,以下是我们为您提供的“蜂蜜”:
我们没有太多的Flink设置经验,关于如何配置内存限制和它们的不同参数。但是,RocksDB使用共享块缓存来控制你的状态的内存限制。所以对于问题1 -你可以grep“block_cache:“和“capacity:“从所有DB(操作员)的所有日志文件。通过块缓存分配给RocksDB的总内存限制将是所有唯一指针的容量之和。相同的块缓存(内存)可以在DB之间共享。请注意,RocksDB可能使用比块缓存容量更多的内存。
如果您有后续问题或需要更多帮助,请发送邮件至Discord

相关问题