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.
2条答案
按热度按时间qvtsj1bj1#
我们从Hive得到的另一个答复是:“每槽固定覆盖托管内存设置,因此需要托管零(它是每槽固定或托管)。正如Yuval所写的,您可以通过检查LRU缓存来查看内存示例。还有一件要检查的事情是RocksDB日志文件中的write_buffer_manager指针。如果每槽固定或托管内存都没有使用,并且在示例之间共享,则每个操作符的指针都不同。”
请告知我们此信息是否有用
kq4fsx7k2#
在Discord上与SpeedbHive分享了您的问题,以下是我们为您提供的“蜂蜜”:
我们没有太多的Flink设置经验,关于如何配置内存限制和它们的不同参数。但是,RocksDB使用共享块缓存来控制你的状态的内存限制。所以对于问题1 -你可以grep“block_cache:“和“capacity:“从所有DB(操作员)的所有日志文件。通过块缓存分配给RocksDB的总内存限制将是所有唯一指针的容量之和。相同的块缓存(内存)可以在DB之间共享。请注意,RocksDB可能使用比块缓存容量更多的内存。
如果您有后续问题或需要更多帮助,请发送邮件至Discord。