Hi Alexis,

The maximum Non-Heap is the sum of the memory pool (which is non-hep) max
size. There are 3 memory pools(based on jdk11):
1. Metaspace,  we can control the size with JVM parameter -XX:MaxMetaspaceSize
or Flink configuration: jobmanager.memory.jvm-metaspace.size. For your job,
this pool size is 150m
2. Compressed Class Space, this is controlled by JVM parameter
-XX:CompressedClassSpaceSize. The default value is 1G or MetaspaceSize - 2
* InitialBootClassLoaderMetaspaceSize(default is 4194304). For your job,
this pool size is 142m
3. CodeCache(codeHeap profiled nmethods/non-profiled
nmethods/non-nmethods), this is controlled by JVM parameter
-XX:ReservedCodeCacheSize. The default value is 240m

So, the maximum non-heap is 150+142+240 = 532m.


Best,
Weihua


On Tue, Feb 21, 2023 at 2:33 PM Alexis Sarda-Espinosa <
sarda.espin...@gmail.com> wrote:

> Hi Weihua,
>
> Thanks for your response, I am familiar with those calculations, the one I
> don't understand is the Maximum Non-Heap value.
>
> Regards,
> Alexis.
>
> On Tue, 21 Feb 2023, 04:45 Weihua Hu, <huweihua....@gmail.com> wrote:
>
>> Hi, Alexis
>>
>> 1. With those configuration, Flink will set JVM parameters -Xms and -Xmx
>> to 673185792(642m),-XX:MaxDirectMemorySize to 
>> 67108864(64m),-XX:MaxMetaspaceSize
>> to 157286400(150m), you can find more information from [1]
>> 2. As the hint in Flink UI: "The maximum heap displayed might differ
>> from the configured values depending on the used GC algorithm for this
>> process.", This[2] shows how JVM calculate the max heap memory from
>> configured -Xms/-Xmx
>>
>>
>> [1]
>> https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/memory/mem_setup_jobmanager/
>> [2]
>> https://stackoverflow.com/questions/52980629/runtime-getruntime-maxmemory-calculate-method
>>
>> Best,
>> Weihua
>>
>>
>> On Tue, Feb 21, 2023 at 12:15 AM Alexis Sarda-Espinosa <
>> sarda.espin...@gmail.com> wrote:
>>
>>> Hello,
>>>
>>> I have configured a job manager with the following settings (Flink
>>> 1.16.1):
>>>
>>> jobmanager.memory.process.size: 1024m
>>> jobmanager.memory.jvm-metaspace.size: 150m
>>> jobmanager.memory.off-heap.size: 64m
>>> jobmanager.memory.jvm-overhead.min: 168m
>>> jobmanager.memory.jvm-overhead.max: 168m
>>> jobmanager.memory.enable-jvm-direct-memory-limit: "true"
>>>
>>> However, when I look at the job manager dashboard in the UI, I see that
>>> the value of Non-Heap Maximum is reported as 532 MB. Could someone clarify
>>> how this value is calculated?
>>>
>>> In case it's relevant, the effective configuration for JVM Heap is
>>> reported as 642 MB, with the reported maximum being 621 MB.
>>>
>>> Regards,
>>> Alexis.
>>>
>>>

Reply via email to