Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
None
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
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)