hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wangda Tan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (YARN-5889) Improve user-limit calculation in capacity scheduler
Date Wed, 14 Dec 2016 18:53:58 GMT

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

Wangda Tan commented on YARN-5889:
----------------------------------

Thanks [~jlowe], [~eepayne].

bq. As such I'm not sure I agree with the proposal for active user limits. It appears that
limit can go below the configured minimum if a lot of users are all asking for the available
resources. That would change the behavior and affect app priorities beyond what the user limit
does today.

I still think we may need to change the behavior a little bit, today's behavior allow first
user go beyond user limit a lot.
For example:
{code} 
5 users, 5 apps, MULP=20, queue-configured-resource=100
App: a1, a2, a3, a4, a5 
Usr: u1, u2, u3, u4, u5

At the time=T, resource usage: a1=25,a2=20,a3=30,a4=20,a5=5; a4/a5 are active user
{code}
Today's logic will get user-limit = 100 / 2 = 50, so if there's more available resource, a4
can get up to 50 resource, and a5 will be starved.

This causes oscillations if we preempt when user's usage beyond {{queue-capacity * MULP}},
a4 will get available resource, and soon it will be preempted because it above {{queue-capacity
* MULP}}. 

So my proposal is to have a new user limit calculation for active users, it should be:

{code}
active-user-limit = max(
   resource-used-by-active-users / #active-users,
   queue-capacity * MULP
)
{code}

This should addressed your point:
bq. limit can go below the configured minimum if a lot of users are all asking for the available
resources 
Since it make sure each user can get at least queue-capacity * MULP, and it avoid one user
dominate all queue's available resource like today. 



bq. For calculating the preemption all-user-limit, I think the equation can be simplified
to absolute queue capacity * MULP.
Generally agree, we can discuss more when implementing preemption logic.

bq. We should only preempt work to get users up to the minimum limit and only if others are
above the minimum limit. Thoughts on this?
Totally agree.

Thoughts? [~sunilg].

> Improve user-limit calculation in capacity scheduler
> ----------------------------------------------------
>
>                 Key: YARN-5889
>                 URL: https://issues.apache.org/jira/browse/YARN-5889
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: capacity scheduler
>            Reporter: Sunil G
>            Assignee: Sunil G
>         Attachments: YARN-5889.v0.patch, YARN-5889.v1.patch, YARN-5889.v2.patch
>
>
> Currently user-limit is computed during every heartbeat allocation cycle with a write
lock. To improve performance, this tickets is focussing on moving user-limit calculation out
of heartbeat allocation flow.



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

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


Mime
View raw message