[ 
https://issues.apache.org/jira/browse/YARN-3298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wangda Tan updated YARN-3298:
-----------------------------
    Description: 
User-limit is not treat as a hard-limit for now, it will not consider 
required-resource (resource of being-allocated resource request). And also, 
when user's used resource equals to user-limit, it will still continue. This 
will generate jitter issues when we have YARN-2069 (preemption policy kills a 
container under an user, and scheduler allocate a container under the same user 
soon after).

The expected behavior should be as same as queue's capacity:
Only when user.usage + required <= user-limit (1), queue will continue to 
allocate container.

(1), user-limit mentioned here is determined by following computing
{code}
current-capacity = queue.used + now-required (when queue.used > queue.capacity)
                   queue.capacity (when queue.used < queue.capacity)
user-limit = min(max(current-capacity / #active-users, current-capacity * 
user-limit / 100), queue-capacity * user-limit-factor)
{code}

  was:
User-limit is not treat as a hard-limit for now, it will not consider 
required-resource (resource of being-allocated resource request). And also, 
when user's used resource equals to user-limit, it will still continue. This 
will generate jitter issues when we have YARN-2069 (preemption policy kills a 
container under an user, and scheduler allocate a container under the same user 
soon after).

The expected behavior should be as same as queue's capacity:
Only when user.usage + required <= user-limit, queue will continue to allocate 
container.


> User-limit should be enforced in CapacityScheduler
> --------------------------------------------------
>
>                 Key: YARN-3298
>                 URL: https://issues.apache.org/jira/browse/YARN-3298
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: capacityscheduler, yarn
>            Reporter: Wangda Tan
>            Assignee: Wangda Tan
>
> User-limit is not treat as a hard-limit for now, it will not consider 
> required-resource (resource of being-allocated resource request). And also, 
> when user's used resource equals to user-limit, it will still continue. This 
> will generate jitter issues when we have YARN-2069 (preemption policy kills a 
> container under an user, and scheduler allocate a container under the same 
> user soon after).
> The expected behavior should be as same as queue's capacity:
> Only when user.usage + required <= user-limit (1), queue will continue to 
> allocate container.
> (1), user-limit mentioned here is determined by following computing
> {code}
> current-capacity = queue.used + now-required (when queue.used > 
> queue.capacity)
>                    queue.capacity (when queue.used < queue.capacity)
> user-limit = min(max(current-capacity / #active-users, current-capacity * 
> user-limit / 100), queue-capacity * user-limit-factor)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to