The off heap usage reported in the task manager ui can be misleading, because 
it does not contain the memory used by native library like rocksdb, which can 
be huge if you have large stateful job.

Regards,
Kien

⁣Sent from TypeApp ​

On Feb 16, 2018, 00:33, at 00:33, Pawel Bartoszek <pawelbartosze...@gmail.com> 
wrote:
>Thanks Kien. I will at least play with the setting :) We use hadoop
>(s3) as
>a chekpoint store. In our case off heap memory is around 300MB as
>reported
>on task manager statistic page.
>
>15 lut 2018 17:24 "Kien Truong" <duckientru...@gmail.com> napisał(a):
>
>> Hi,
>>
>> The relevant settings is:
>>
>> containerized.heap-cutoff-ratio: (Default 0.25) Percentage of heap
>space
>> to remove from containers started by YARN. When a user requests a
>certain
>> amount of memory for each TaskManager container (for example 4 GB),
>we can
>> not pass this amount as the maximum heap space for the JVM (-Xmx
>> argument) because the JVM is also allocating memory outside the heap.
>YARN
>> is very strict with killing containers which are using more memory
>than
>> requested. Therefore, we remove this fraction of the memory from the
>> requested heap as a safety margin and add it to the memory used
>off-heap.
>>
>>
>> You can reduce this in order to get a bigger JVM heap size or
>increase it
>> in order to reserve more memory for off-heap usage (for jobs with
>large
>> rocksdb state),
>>
>> but I suggest you not changing this setting without careful
>consideration.
>>
>>
>> Regards,
>>
>> Kien
>>
>>
>> On 2/16/2018 12:01 AM, Pawel Bartoszek wrote:
>>
>> I tried also setting  taskmanager.memory.off-heap to true
>>
>> I still get around 42GB (Heap + DirectMemory)
>>
>> yarn      56827  837 16.6 16495964 10953748 ?   Sl   16:53  34:10
>> /usr/lib/jvm/java-openjdk/bin/java -Xms12409m -Xmx12409m
>> -XX:MaxDirectMemorySize=29591m
>>
>> Cheers,
>> Pawel
>>
>>
>> On 15 February 2018 at 16:03, Pawel Bartoszek
><pawelbartosze...@gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> I have a question regarding configuration of task manager heap size
>when
>>> running YARN session on EMR.
>>>
>>> I am running 2 task managers on m4.4xlarge (64GB RAM). I would like
>to
>>> use as much as possible of that memory for the task manager heap.
>>>
>>> However when requesting 56000 MB when staring YARN actually only
>around
>>> 42GB is assigned to TM. Do you know how I can increase that?
>>>
>>>
>>> This is how I start YARN session:
>>> /usr/lib/flink/bin/yarn-session.sh --container 2 --taskManagerMemory
>>> 56000 --slots 16 --detached -Dparallelism.default=32
>>> -Dtaskmanager.network.numberOfBuffers=20480 ...
>>>
>>>
>>> This is the output of *ps aux *on TM box
>>>
>>> yarn      42843 1030 67.7 46394740 44688084 ?   Sl   15:27 175:56
>>> /usr/lib/jvm/java-openjdk/bin/java -Xms42000m -Xmx42000m ....
>>>
>>> yarn      42837  0.0  0.0 113104  2684 ?        Ss   15:27   0:00
>>> /bin/bash -c /usr/lib/jvm/java-openjdk/bin/java -Xms42000m
>-Xmx42000m
>>> ....
>>>
>>>
>>> I would expect around 56GB set as max heap size for TM.
>>>
>>> some settings from yarn-site.xml that might be of interest:
>>>
>>> <property>
>>>     <name>yarn.scheduler.maximum-allocation-mb</name>
>>>     <value>57344</value>
>>>   </property>
>>>
>>> <property>
>>>     <name>yarn.nodemanager.resource.memory-mb</name>
>>>     <value>57344</value>
>>>   </property>
>>>
>>> <property>
>>>     <name>yarn.nodemanager.vmem-pmem-ratio</name>
>>>     <value>5</value>
>>>   </property>
>>>
>>>
>>> Cheers,
>>> Pawel
>>>
>>>
>>>
>>

Reply via email to