You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by Boris Shulman <sh...@gmail.com> on 2015/09/10 23:47:20 UTC

RE: [jira] [Commented] (REEF-733) Add configuration to REEF .NETEvaluator to specify using server GC

This will lead to more aggressive memory allocations, and will cause containers to be killed. Depending on application different settings are required. So it should be configurable.

-----Original Message-----
From: "Anupam (JIRA)" <ji...@apache.org>
Sent: ‎9/‎10/‎2015 2:43 PM
To: "dev@reef.incubator.apache.org" <de...@reef.incubator.apache.org>
Subject: [jira] [Commented] (REEF-733) Add configuration to REEF .NETEvaluator to specify using server GC


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

Anupam commented on REEF-733:
-----------------------------

I believe the goal of REEF is to make authoring distributed applications easier. If this assessment is true, we should set the configuration by default to server GC.
Providing a handle to override this configuration is a good to have but a default set to server GC is a must have, which is not the case currently.

> Add configuration to REEF .NET Evaluator to specify using server GC
> -------------------------------------------------------------------
>
>                 Key: REEF-733
>                 URL: https://issues.apache.org/jira/browse/REEF-733
>             Project: REEF
>          Issue Type: Task
>          Components: REEF.NET Evaluator
>            Reporter: Anupam
>
> We should be using server GC. By default .NET will use workstation GC.



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

Re: [jira] [Commented] (REEF-733) Add configuration to REEF.NETEvaluator to specify using server GC

Posted by Anupam <an...@gmail.com>.
Makes sense. I will modify the JIRA to reflect the same.

On 10 September 2015 at 17:38, Boris Shulman <sh...@gmail.com> wrote:

> Certain workloads get better perf with client GC.
>
> -----Original Message-----
> From: "Yingda Chen" <yd...@gmail.com>
> Sent: ‎9/‎10/‎2015 5:35 PM
> To: "dev" <de...@reef.incubator.apache.org>
> Subject: Re: [jira] [Commented] (REEF-733) Add configuration to
> REEF.NETEvaluator to specify using server GC
>
> This
> <
> https://msdn.microsoft.com/en-us/library/ee787088%28v=vs.110%29.aspx#workstation_and_server_garbage_collection
> >is
> a good read. A correct default is definitely important, and in this case I
> vote for default to the more conservative option, i.e., workstation GC.
> Those who care more about performance than resource usage can opt for
> server GC by configuring the settings.
>
> -Yingda
>
> On Fri, Sep 11, 2015 at 8:26 AM, Boris Shulman <sh...@gmail.com> wrote:
>
> > What we have seen, that when server gc is enabled then memory allocated
> to
> > CLR immediately doubles (from 50 MB to 100 MB). In addition CLR does not
> > release memory as fast as in client mode, so you end up with having large
> > amount of memory that is not used but CLR still holds it. As there is no
> > way to limit CLR memory usage you can easily  use moe memory that memory
> > you actually requested from yarn, and then yarn will kill that container.
> > Same workload running with server GC and client GC may result is as mush
> s
> > x2 memory usage.
> >
> > On Thu, Sep 10, 2015 at 4:50 PM, Anupam <an...@gmail.com> wrote:
> >
> > > Could you please elaborate on how changing GC implementation would make
> > > allocations aggressive? Further, how would it kill containers?
> > >
> > > Providing configuration handle is undeniably important. Choosing a
> > correct
> > > default is more important, especially in this scenario as the
> > side-effects
> > > are hard to notice.
> > > .NET chosen default assumes most applications would run on client
> > machines,
> > > which is not the case for REEF applications.
> > >
> > >
> > >
> > > On 10 September 2015 at 14:47, Boris Shulman <sh...@gmail.com>
> wrote:
> > >
> > > > This will lead to more aggressive memory allocations, and will cause
> > > > containers to be killed. Depending on application different settings
> > are
> > > > required. So it should be configurable.
> > > >
> > > > -----Original Message-----
> > > > From: "Anupam (JIRA)" <ji...@apache.org>
> > > > Sent: ‎9/‎10/‎2015 2:43 PM
> > > > To: "dev@reef.incubator.apache.org" <de...@reef.incubator.apache.org>
> > > > Subject: [jira] [Commented] (REEF-733) Add configuration to REEF
> > > > .NETEvaluator to specify using server GC
> > > >
> > > >
> > > >     [
> > > >
> > >
> >
> https://issues.apache.org/jira/browse/REEF-733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14739657#comment-14739657
> > > > ]
> > > >
> > > > Anupam commented on REEF-733:
> > > > -----------------------------
> > > >
> > > > I believe the goal of REEF is to make authoring distributed
> > applications
> > > > easier. If this assessment is true, we should set the configuration
> by
> > > > default to server GC.
> > > > Providing a handle to override this configuration is a good to have
> > but a
> > > > default set to server GC is a must have, which is not the case
> > currently.
> > > >
> > > > > Add configuration to REEF .NET Evaluator to specify using server GC
> > > > > -------------------------------------------------------------------
> > > > >
> > > > >                 Key: REEF-733
> > > > >                 URL:
> https://issues.apache.org/jira/browse/REEF-733
> > > > >             Project: REEF
> > > > >          Issue Type: Task
> > > > >          Components: REEF.NET Evaluator
> > > > >            Reporter: Anupam
> > > > >
> > > > > We should be using server GC. By default .NET will use workstation
> > GC.
> > > >
> > > >
> > > >
> > > > --
> > > > This message was sent by Atlassian JIRA
> > > > (v6.3.4#6332)
> > > >
> > >
> > >
> > >
> > > --
> > > Anupam
> > > Bellevue, WA
> > > Ph: +1 (425)-777-5570
> > >
> >
>



-- 
Anupam
Bellevue, WA
Ph: +1 (425)-777-5570

RE: [jira] [Commented] (REEF-733) Add configuration to REEF.NETEvaluator to specify using server GC

Posted by Boris Shulman <sh...@gmail.com>.
Certain workloads get better perf with client GC.

-----Original Message-----
From: "Yingda Chen" <yd...@gmail.com>
Sent: ‎9/‎10/‎2015 5:35 PM
To: "dev" <de...@reef.incubator.apache.org>
Subject: Re: [jira] [Commented] (REEF-733) Add configuration to REEF.NETEvaluator to specify using server GC

This
<https://msdn.microsoft.com/en-us/library/ee787088%28v=vs.110%29.aspx#workstation_and_server_garbage_collection>is
a good read. A correct default is definitely important, and in this case I
vote for default to the more conservative option, i.e., workstation GC.
Those who care more about performance than resource usage can opt for
server GC by configuring the settings.

-Yingda

On Fri, Sep 11, 2015 at 8:26 AM, Boris Shulman <sh...@gmail.com> wrote:

> What we have seen, that when server gc is enabled then memory allocated to
> CLR immediately doubles (from 50 MB to 100 MB). In addition CLR does not
> release memory as fast as in client mode, so you end up with having large
> amount of memory that is not used but CLR still holds it. As there is no
> way to limit CLR memory usage you can easily  use moe memory that memory
> you actually requested from yarn, and then yarn will kill that container.
> Same workload running with server GC and client GC may result is as mush s
> x2 memory usage.
>
> On Thu, Sep 10, 2015 at 4:50 PM, Anupam <an...@gmail.com> wrote:
>
> > Could you please elaborate on how changing GC implementation would make
> > allocations aggressive? Further, how would it kill containers?
> >
> > Providing configuration handle is undeniably important. Choosing a
> correct
> > default is more important, especially in this scenario as the
> side-effects
> > are hard to notice.
> > .NET chosen default assumes most applications would run on client
> machines,
> > which is not the case for REEF applications.
> >
> >
> >
> > On 10 September 2015 at 14:47, Boris Shulman <sh...@gmail.com> wrote:
> >
> > > This will lead to more aggressive memory allocations, and will cause
> > > containers to be killed. Depending on application different settings
> are
> > > required. So it should be configurable.
> > >
> > > -----Original Message-----
> > > From: "Anupam (JIRA)" <ji...@apache.org>
> > > Sent: ‎9/‎10/‎2015 2:43 PM
> > > To: "dev@reef.incubator.apache.org" <de...@reef.incubator.apache.org>
> > > Subject: [jira] [Commented] (REEF-733) Add configuration to REEF
> > > .NETEvaluator to specify using server GC
> > >
> > >
> > >     [
> > >
> >
> https://issues.apache.org/jira/browse/REEF-733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14739657#comment-14739657
> > > ]
> > >
> > > Anupam commented on REEF-733:
> > > -----------------------------
> > >
> > > I believe the goal of REEF is to make authoring distributed
> applications
> > > easier. If this assessment is true, we should set the configuration by
> > > default to server GC.
> > > Providing a handle to override this configuration is a good to have
> but a
> > > default set to server GC is a must have, which is not the case
> currently.
> > >
> > > > Add configuration to REEF .NET Evaluator to specify using server GC
> > > > -------------------------------------------------------------------
> > > >
> > > >                 Key: REEF-733
> > > >                 URL: https://issues.apache.org/jira/browse/REEF-733
> > > >             Project: REEF
> > > >          Issue Type: Task
> > > >          Components: REEF.NET Evaluator
> > > >            Reporter: Anupam
> > > >
> > > > We should be using server GC. By default .NET will use workstation
> GC.
> > >
> > >
> > >
> > > --
> > > This message was sent by Atlassian JIRA
> > > (v6.3.4#6332)
> > >
> >
> >
> >
> > --
> > Anupam
> > Bellevue, WA
> > Ph: +1 (425)-777-5570
> >
>

Re: [jira] [Commented] (REEF-733) Add configuration to REEF .NETEvaluator to specify using server GC

Posted by Yingda Chen <yd...@gmail.com>.
This
<https://msdn.microsoft.com/en-us/library/ee787088%28v=vs.110%29.aspx#workstation_and_server_garbage_collection>is
a good read. A correct default is definitely important, and in this case I
vote for default to the more conservative option, i.e., workstation GC.
Those who care more about performance than resource usage can opt for
server GC by configuring the settings.

-Yingda

On Fri, Sep 11, 2015 at 8:26 AM, Boris Shulman <sh...@gmail.com> wrote:

> What we have seen, that when server gc is enabled then memory allocated to
> CLR immediately doubles (from 50 MB to 100 MB). In addition CLR does not
> release memory as fast as in client mode, so you end up with having large
> amount of memory that is not used but CLR still holds it. As there is no
> way to limit CLR memory usage you can easily  use moe memory that memory
> you actually requested from yarn, and then yarn will kill that container.
> Same workload running with server GC and client GC may result is as mush s
> x2 memory usage.
>
> On Thu, Sep 10, 2015 at 4:50 PM, Anupam <an...@gmail.com> wrote:
>
> > Could you please elaborate on how changing GC implementation would make
> > allocations aggressive? Further, how would it kill containers?
> >
> > Providing configuration handle is undeniably important. Choosing a
> correct
> > default is more important, especially in this scenario as the
> side-effects
> > are hard to notice.
> > .NET chosen default assumes most applications would run on client
> machines,
> > which is not the case for REEF applications.
> >
> >
> >
> > On 10 September 2015 at 14:47, Boris Shulman <sh...@gmail.com> wrote:
> >
> > > This will lead to more aggressive memory allocations, and will cause
> > > containers to be killed. Depending on application different settings
> are
> > > required. So it should be configurable.
> > >
> > > -----Original Message-----
> > > From: "Anupam (JIRA)" <ji...@apache.org>
> > > Sent: ‎9/‎10/‎2015 2:43 PM
> > > To: "dev@reef.incubator.apache.org" <de...@reef.incubator.apache.org>
> > > Subject: [jira] [Commented] (REEF-733) Add configuration to REEF
> > > .NETEvaluator to specify using server GC
> > >
> > >
> > >     [
> > >
> >
> https://issues.apache.org/jira/browse/REEF-733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14739657#comment-14739657
> > > ]
> > >
> > > Anupam commented on REEF-733:
> > > -----------------------------
> > >
> > > I believe the goal of REEF is to make authoring distributed
> applications
> > > easier. If this assessment is true, we should set the configuration by
> > > default to server GC.
> > > Providing a handle to override this configuration is a good to have
> but a
> > > default set to server GC is a must have, which is not the case
> currently.
> > >
> > > > Add configuration to REEF .NET Evaluator to specify using server GC
> > > > -------------------------------------------------------------------
> > > >
> > > >                 Key: REEF-733
> > > >                 URL: https://issues.apache.org/jira/browse/REEF-733
> > > >             Project: REEF
> > > >          Issue Type: Task
> > > >          Components: REEF.NET Evaluator
> > > >            Reporter: Anupam
> > > >
> > > > We should be using server GC. By default .NET will use workstation
> GC.
> > >
> > >
> > >
> > > --
> > > This message was sent by Atlassian JIRA
> > > (v6.3.4#6332)
> > >
> >
> >
> >
> > --
> > Anupam
> > Bellevue, WA
> > Ph: +1 (425)-777-5570
> >
>

Re: [jira] [Commented] (REEF-733) Add configuration to REEF .NETEvaluator to specify using server GC

Posted by Boris Shulman <sh...@gmail.com>.
What we have seen, that when server gc is enabled then memory allocated to
CLR immediately doubles (from 50 MB to 100 MB). In addition CLR does not
release memory as fast as in client mode, so you end up with having large
amount of memory that is not used but CLR still holds it. As there is no
way to limit CLR memory usage you can easily  use moe memory that memory
you actually requested from yarn, and then yarn will kill that container.
Same workload running with server GC and client GC may result is as mush s
x2 memory usage.

On Thu, Sep 10, 2015 at 4:50 PM, Anupam <an...@gmail.com> wrote:

> Could you please elaborate on how changing GC implementation would make
> allocations aggressive? Further, how would it kill containers?
>
> Providing configuration handle is undeniably important. Choosing a correct
> default is more important, especially in this scenario as the side-effects
> are hard to notice.
> .NET chosen default assumes most applications would run on client machines,
> which is not the case for REEF applications.
>
>
>
> On 10 September 2015 at 14:47, Boris Shulman <sh...@gmail.com> wrote:
>
> > This will lead to more aggressive memory allocations, and will cause
> > containers to be killed. Depending on application different settings are
> > required. So it should be configurable.
> >
> > -----Original Message-----
> > From: "Anupam (JIRA)" <ji...@apache.org>
> > Sent: ‎9/‎10/‎2015 2:43 PM
> > To: "dev@reef.incubator.apache.org" <de...@reef.incubator.apache.org>
> > Subject: [jira] [Commented] (REEF-733) Add configuration to REEF
> > .NETEvaluator to specify using server GC
> >
> >
> >     [
> >
> https://issues.apache.org/jira/browse/REEF-733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14739657#comment-14739657
> > ]
> >
> > Anupam commented on REEF-733:
> > -----------------------------
> >
> > I believe the goal of REEF is to make authoring distributed applications
> > easier. If this assessment is true, we should set the configuration by
> > default to server GC.
> > Providing a handle to override this configuration is a good to have but a
> > default set to server GC is a must have, which is not the case currently.
> >
> > > Add configuration to REEF .NET Evaluator to specify using server GC
> > > -------------------------------------------------------------------
> > >
> > >                 Key: REEF-733
> > >                 URL: https://issues.apache.org/jira/browse/REEF-733
> > >             Project: REEF
> > >          Issue Type: Task
> > >          Components: REEF.NET Evaluator
> > >            Reporter: Anupam
> > >
> > > We should be using server GC. By default .NET will use workstation GC.
> >
> >
> >
> > --
> > This message was sent by Atlassian JIRA
> > (v6.3.4#6332)
> >
>
>
>
> --
> Anupam
> Bellevue, WA
> Ph: +1 (425)-777-5570
>

Re: [jira] [Commented] (REEF-733) Add configuration to REEF .NETEvaluator to specify using server GC

Posted by Anupam <an...@gmail.com>.
Could you please elaborate on how changing GC implementation would make
allocations aggressive? Further, how would it kill containers?

Providing configuration handle is undeniably important. Choosing a correct
default is more important, especially in this scenario as the side-effects
are hard to notice.
.NET chosen default assumes most applications would run on client machines,
which is not the case for REEF applications.



On 10 September 2015 at 14:47, Boris Shulman <sh...@gmail.com> wrote:

> This will lead to more aggressive memory allocations, and will cause
> containers to be killed. Depending on application different settings are
> required. So it should be configurable.
>
> -----Original Message-----
> From: "Anupam (JIRA)" <ji...@apache.org>
> Sent: ‎9/‎10/‎2015 2:43 PM
> To: "dev@reef.incubator.apache.org" <de...@reef.incubator.apache.org>
> Subject: [jira] [Commented] (REEF-733) Add configuration to REEF
> .NETEvaluator to specify using server GC
>
>
>     [
> https://issues.apache.org/jira/browse/REEF-733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14739657#comment-14739657
> ]
>
> Anupam commented on REEF-733:
> -----------------------------
>
> I believe the goal of REEF is to make authoring distributed applications
> easier. If this assessment is true, we should set the configuration by
> default to server GC.
> Providing a handle to override this configuration is a good to have but a
> default set to server GC is a must have, which is not the case currently.
>
> > Add configuration to REEF .NET Evaluator to specify using server GC
> > -------------------------------------------------------------------
> >
> >                 Key: REEF-733
> >                 URL: https://issues.apache.org/jira/browse/REEF-733
> >             Project: REEF
> >          Issue Type: Task
> >          Components: REEF.NET Evaluator
> >            Reporter: Anupam
> >
> > We should be using server GC. By default .NET will use workstation GC.
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.3.4#6332)
>



-- 
Anupam
Bellevue, WA
Ph: +1 (425)-777-5570