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 <mailto: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