hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nathan Roberts (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (YARN-6775) CapacityScheduler: Improvements to assignContainers()
Date Fri, 07 Jul 2017 20:56:00 GMT

    [ 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
* 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
* 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

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

View raw message