hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Payne (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (YARN-415) Capture memory utilization at the app-level for chargeback
Date Thu, 17 Jul 2014 16:39:06 GMT

     [ https://issues.apache.org/jira/browse/YARN-415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Eric Payne updated YARN-415:

    Attachment: YARN-415.201407171553.txt

Thanks [~leftnoteasy]]
No, you can update current trunk code, and check RMContainerImpl#FinishedTransition#updateMetricsIfPreempted,
you can change the "updateMetricsIfPreempted" to something like updateAttemptMetrics. And
create a new method in RMAppAttemptMetrics, like "updateResourceUtilization". The benefit
of doing this is you don need send payload to RMAppAttempt, all you needed information should
be existed in RMContainer.

updateMetricsIfPreempted() is using the current attempt. Is there a way to get the RMAppAttempt
object for completed attempts. IIUC, there are races where there is no running attempt, such
as when an attempt dies after other containers have started and then the app itself dies or
is killed. Also, in the case of "work-preserving restart," the appattempt could die and it's
child containers could be assigned to the second appattempt,

I have included a new patch that adds the payload to the CONTAINER_FINISHED event, which is
sent to the appropriate RMAppAttempt. The RMAppAttempt then will keep track of it's own stats,
even after the container for that appattempt has finished.

> Capture memory utilization at the app-level for chargeback
> ----------------------------------------------------------
>                 Key: YARN-415
>                 URL: https://issues.apache.org/jira/browse/YARN-415
>             Project: Hadoop YARN
>          Issue Type: New Feature
>          Components: resourcemanager
>    Affects Versions: 0.23.6
>            Reporter: Kendall Thrapp
>            Assignee: Andrey Klochkov
>         Attachments: YARN-415--n10.patch, YARN-415--n2.patch, YARN-415--n3.patch, YARN-415--n4.patch,
YARN-415--n5.patch, YARN-415--n6.patch, YARN-415--n7.patch, YARN-415--n8.patch, YARN-415--n9.patch,
YARN-415.201405311749.txt, YARN-415.201406031616.txt, YARN-415.201406262136.txt, YARN-415.201407042037.txt,
YARN-415.201407071542.txt, YARN-415.201407171553.txt, YARN-415.patch
> For the purpose of chargeback, I'd like to be able to compute the cost of an
> application in terms of cluster resource usage.  To start out, I'd like to get the memory
utilization of an application.  The unit should be MB-seconds or something similar and, from
a chargeback perspective, the memory amount should be the memory reserved for the application,
as even if the app didn't use all that memory, no one else was able to use it.
> (reserved ram for container 1 * lifetime of container 1) + (reserved ram for
> container 2 * lifetime of container 2) + ... + (reserved ram for container n * lifetime
of container n)
> It'd be nice to have this at the app level instead of the job level because:
> 1. We'd still be able to get memory usage for jobs that crashed (and wouldn't appear
on the job history server).
> 2. We'd be able to get memory usage for future non-MR jobs (e.g. Storm).
> This new metric should be available both through the RM UI and RM Web Services REST API.

This message was sent by Atlassian JIRA

View raw message