Harsh J created YARN-168:
----------------------------

             Summary: No way to turn off virtual memory limits without turning 
off physical memory limits
                 Key: YARN-168
                 URL: https://issues.apache.org/jira/browse/YARN-168
             Project: Hadoop YARN
          Issue Type: Bug
          Components: nodemanager
    Affects Versions: 3.0.0
            Reporter: Harsh J


Asked and reported by a user (Krishna) on ML:

{quote}
This is possible to do, but you've hit a bug with the current YARN
implementation. Ideally you should be able to configure the vmem-pmem
ratio (or an equivalent config) to be -1, to indicate disabling of
virtual memory checks completely (and there's indeed checks for this),
but it seems like we are enforcing the ratio to be at least 1.0 (and
hence negatives are disallowed).

You can't workaround by setting the NM's offered resource.mb to -1
either, as you'll lose out on controlling maximum allocations.

Please file a YARN bug on JIRA. The code at fault lies under
ContainersMonitorImpl#init(…).



On Thu, Oct 18, 2012 at 4:00 PM, Krishna Kishore Bonagiri
<[email protected]> wrote:
> Hi,
>
>   Is there a way we can ask the YARN RM for not killing a container when it
> uses excess virtual memory than the maximum it can use as per the
> specification in the configuration file yarn-site.xml? We can't always
> estimate the amount of virtual memory needed for our application running on
> a container, but we don't want to get it killed in a case it exceeds the
> maximum limit.
>
>   Please suggest as to how can we come across this issue.
>
> Thanks,
> Kishore
{quote}

Basically, we're doing:

{code}
    // ///////// Virtual memory configuration //////
    float vmemRatio = conf.getFloat(
        YarnConfiguration.NM_VMEM_PMEM_RATIO,
        YarnConfiguration.DEFAULT_NM_VMEM_PMEM_RATIO);
    Preconditions.checkArgument(vmemRatio > 0.99f,
        YarnConfiguration.NM_VMEM_PMEM_RATIO +
        " should be at least 1.0");
    this.maxVmemAllottedForContainers =
      (long)(vmemRatio * maxPmemAllottedForContainers);
{code}

For virtual memory monitoring to be disabled, maxVmemAllottedForContainers has 
to be -1. For that to be -1, given the above buggy computation, vmemRatio must 
be -1 or maxPmemAllottedForContainers must be -1.

If vmemRatio were -1, we fail the precondition check and exit.
If maxPmemAllottedForContainers, we also end up disabling physical memory 
monitoring.

Or perhaps that makes sense - to disable both physical and virtual memory 
monitoring, but that way your NM becomes infinite in resource grants, I think.

We need a way to selectively disable kills done via virtual memory monitoring, 
which is the base request here.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to