You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Eric Payne (Jira)" <ji...@apache.org> on 2019/12/02 21:58:00 UTC
[jira] [Commented] (YARN-10009) DRF can treat minimum user limit
percent as a max when custom resource is defined
[ https://issues.apache.org/jira/browse/YARN-10009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16986411#comment-16986411 ]
Eric Payne commented on YARN-10009:
-----------------------------------
The root cause is here:
{code:UsersManager#computeUserLimit}
/*
* User limit resource is determined by: max(currentCapacity / #activeUsers,
* currentCapacity * user-limit-percentage%)
*/
Resource userLimitResource = Resources.max(resourceCalculator,
partitionResource,
Resources.divideAndCeil(resourceCalculator, resourceUsed,
usersSummedByWeight),
Resources.divideAndCeil(resourceCalculator,
Resources.multiplyAndRoundDown(currentCapacity, getUserLimit()),
100));
{code}
When calculating the user resource limit, {{divideAndCeil}} is used to take the max of either (queue capacity / # of active users) or (queue capacity / min user limit pct). However, they are not the same divideAndCeil methods. The first takes a {{Resource}} and a {{float}} and the second takes a {{Resource}} and an {{int}}. The method with the {{Resource}} {{float}} signature was never updated to handle custom resources.
The only place that calls {{difideAndCeil(Resource, float)}} is here in {{UsersManager#computeUserLimit}}
> DRF can treat minimum user limit percent as a max when custom resource is defined
> ---------------------------------------------------------------------------------
>
> Key: YARN-10009
> URL: https://issues.apache.org/jira/browse/YARN-10009
> Project: Hadoop YARN
> Issue Type: Improvement
> Reporter: Eric Payne
> Assignee: Eric Payne
> Priority: Major
>
> | | Memory | Vcores | res_1 |
> | Queue1 Totals | 20GB | 100 | 80 |
> | Resources requested by App1 in Queue1 | 8GB (40% of total) | 8 (8% of total) | 80 (100% of total) |
> In the previous use case:
> - Queue1 has a value of 25 for {{miminum-user-limit-percent}}
> - User1 has requested 8 containers with {{<memory:1GB, vcores:8, res_1:10>}} each
> - {{res_1}} will be the dominant resource this case.
> All 8 containers should be assigned by the capacity scheduler, but with min user limit pct set to 25, only 3 containers are assigned.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org