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 "Nathan Roberts (JIRA)" <ji...@apache.org> on 2017/07/07 20:56:00 UTC

[jira] [Commented] (YARN-6775) CapacityScheduler: Improvements to assignContainers()

    [ https://issues.apache.org/jira/browse/YARN-6775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16078677#comment-16078677 ] 

Nathan Roberts commented on YARN-6775:
--------------------------------------

Below is the list of changes included in the patch. Each is prefixed with the new throughput number as reported by the included unit test case. (Run as: mvn test -Dtest=TestCapacityScheduler#testUserLimitThroughput -DRunUserLimitThroughput=true)
* 13500 - Baseline (baseline was 9100 prior to Daryn's set of improvements in YARN-6242)
* 15000 - In computeUserLimitAndSetHeaderoom(), calculating headroom is not cheap so only do so if user metrics are enabled - which is the only thing that depends on the result of getHeadroom().
* 20000 - cache userlimit calculation within assignContainers() + Avoid canAssignToQueue() check if we've already calculated the worst-case condition (no possibility of freeing up a reservation to satisfy the request)
* 24000 - Avoid canAssignToUser() if we've already determined this user is over its limit given the current application's reservation request
* 53000 - Check for shouldRecordThisNode() earlier in recordRejectedAppActivityFromLeafQueue() to avoid expensive calculations that will just be thrown away later

> CapacityScheduler: Improvements to assignContainers()
> -----------------------------------------------------
>
>                 Key: YARN-6775
>                 URL: https://issues.apache.org/jira/browse/YARN-6775
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: capacityscheduler
>    Affects Versions: 2.8.1, 3.0.0-alpha3
>            Reporter: Nathan Roberts
>            Assignee: Nathan Roberts
>         Attachments: YARN-6775.001.patch
>
>
> There are several things in assignContainers() that are done multiple times even though the result cannot change (canAssignToUser, canAssignToQueue). Add some local caching to take advantage of this fact.
> Will post patch shortly. Patch includes a simple throughput test that demonstrates when we have users at their user-limit, the number of NodeUpdateSchedulerEvents we can process can be improved from 13K/sec to 50K/sec.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org