Hi,

I am making some test about offheap memory usage and encounter an odd
behavior. My taskmanager heap limit is 12288 Mb and when i set
"taskmanager.memory.off-hep:true" for every job it allocates 11673 Mb off
heap area at most which is heapsize*0.95(value of
taskmanager.memory.fraction). But when i submit second job it allocated
another 11GB and does not free memory since MaxDirectMemorySize set to
 -XX:MaxDirectMemorySize=${TM_MAX_OFFHEAP_SIZE}"  which is
TM_MAX_OFFHEAP_SIZE="8388607T" and my laptop goes to swap then kernel oom
killed taskmanager. If i hit perform gc from visualvm between jobs then it
release direct memory but memory usage of taskmanager in ps command is
still around 20GB(RSS) and 27GB(virtual size)  in that case i could submit
my test job a few times without oom killed task manager but after 10 submit
 it killed taskmanager again.  I dont understand why jvm memory usage is
still high even if all direct memory released. Do you have any idea? Then
 i set MaxDirectMemorySize to 12 GB  in this case it freed direct memory
without any explicit gc triggering from visualvm but jvm process memory
usage was still high around 20GB(RSS) and 27GB(virtual size). After again
maybe 10 submit it killed taskmanager. I think this is a bug and make it
imposible to reuse taskmanagers without restarting them in standalone mode.

[image: Inline images 1]

[image: Inline images 2]

Reply via email to