You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by haishui <ha...@126.com> on 2022/09/22 06:41:46 UTC

关于Managed Memory的疑问

官方文档的Configration对于taskmanager.memory.managed.size的介绍说托管内存用于排序、哈希表、缓存中间结果和RocksDB状态后端。
在MemoryConfigration的Memory Tuning Guide中介绍HashMap状态后端时说 如果Job是无状态或使用HashMap状态后端时可以设置托管内存为0。
我的Flink作业使用的HashMap状态后端,在WebUI上确实显示托管内存一直为0,将托管内存设置为0确实可行,我的疑问是托管内存何时用于排序、哈希表、缓存中间结果,我现在只遇到在使用RocksDB状态后端和Session模式下上传Jar时如果设置为0时会报错

Re:Re: 关于Managed Memory的疑问

Posted by haishui <ha...@126.com>.
感谢解答

















在 2022-09-22 15:00:48,"Shammon FY" <zj...@gmail.com> 写道:
>Hi @haishui
>
>这里提到的Managed Memory用于排序、哈希表等,一般是在flink批式作业里用到,例如HashJoin。
>流式计算的join算子,使用statebackend存储状态,例如rocksdb。批式计算的join算子跟流式的join算子处理不同,例如批式的HashJoinOperator算子,会创建BinaryHashTable进行分桶并建立hash表,BinaryHashTable会从Managed
>Memory申请和释放内存
>
>
>On Thu, Sep 22, 2022 at 2:42 PM haishui <ha...@126.com> wrote:
>
>>
>> 官方文档的Configration对于taskmanager.memory.managed.size的介绍说托管内存用于排序、哈希表、缓存中间结果和RocksDB状态后端。
>> 在MemoryConfigration的Memory Tuning Guide中介绍HashMap状态后端时说
>> 如果Job是无状态或使用HashMap状态后端时可以设置托管内存为0。
>>
>> 我的Flink作业使用的HashMap状态后端,在WebUI上确实显示托管内存一直为0,将托管内存设置为0确实可行,我的疑问是托管内存何时用于排序、哈希表、缓存中间结果,我现在只遇到在使用RocksDB状态后端和Session模式下上传Jar时如果设置为0时会报错

Re: 关于Managed Memory的疑问

Posted by Shammon FY <zj...@gmail.com>.
Hi @haishui

这里提到的Managed Memory用于排序、哈希表等,一般是在flink批式作业里用到,例如HashJoin。
流式计算的join算子,使用statebackend存储状态,例如rocksdb。批式计算的join算子跟流式的join算子处理不同,例如批式的HashJoinOperator算子,会创建BinaryHashTable进行分桶并建立hash表,BinaryHashTable会从Managed
Memory申请和释放内存


On Thu, Sep 22, 2022 at 2:42 PM haishui <ha...@126.com> wrote:

>
> 官方文档的Configration对于taskmanager.memory.managed.size的介绍说托管内存用于排序、哈希表、缓存中间结果和RocksDB状态后端。
> 在MemoryConfigration的Memory Tuning Guide中介绍HashMap状态后端时说
> 如果Job是无状态或使用HashMap状态后端时可以设置托管内存为0。
>
> 我的Flink作业使用的HashMap状态后端,在WebUI上确实显示托管内存一直为0,将托管内存设置为0确实可行,我的疑问是托管内存何时用于排序、哈希表、缓存中间结果,我现在只遇到在使用RocksDB状态后端和Session模式下上传Jar时如果设置为0时会报错