Subject: Re: [vserver] Resource Throttling
From: "--[ UxBoD ]--" <uxbod@splatnix.net>
Date: Thu, 20 May 2010 15:33:38 +0100 (BST)

----- Original Message -----
> On Thu, May 20, 2010 at 03:03:19PM +0100, --[ UxBoD ]-- wrote:
> > ----- Original Message -----
> > > On Thu, May 20, 2010 at 02:01:04PM +0100, --[ UxBoD ]-- wrote:
> > > > Hello all,
> 
> > > > Slowly getting to grips with VServer though have a question over
> > > > resource sharing. We have a server with 8 CPUs and 32GB RAM; and
> > > > 20 contexts running. The nature of each context is a virtual
> > > > desktop and recently have experienced a problem where one
> > > > context has
> > > > consumed a
> > > > high amount of CPU and memory.
> 
> > > > I have read the documentation on context rlimits though am a
> > > > little confused on how best to set the fill and interval rates.
> > > > My aim is
> > > > not to impede our desktops, and allow bursting when required,
> > > > but I
> > > > wish to stop runaway processes from bringing down the other
> > > > contexts.
> 
> > > > The initial thoughts are that we should set each context to
> > > > sched_prio
> > > > and for the limits use:
> 
> > > > fill-rate : 3
> > > > interval : 10
> > > > max-tokens : 5000
> > > > min-tokens : 1000
> 
> > > > How do you these values sound ?
> 
> > > sound good to me, what kernel/patch do you use?
> 
> > > > I see how the values are updated in /proc/virtual/<CTX>/sched
> > > > though is there any easy way to keep a running track of how many
> > > > tokens are
> > > > being consumed by each context ?
> 
> > > not really, although the number of tokens currently
> > > in the bucket is shown too, so it is possible to
> > > calculate that (to some extend)
> 
> > > HTH,
> > > Herbert
> 
> > > > Looking forward to any responses.
> > > > -- Thanks, Phil
> 
> > Hello Herbert,
> 
> > Thank you for your response. I am running 2.6.28.7-vs2.3.0.36.7
> > though plan to update too a 2.6.32 kernel in the near future.
> 
> in this case you should look into cgroups, as newer kernels
> do not use the token bucket scheduler anymore.
> 
> http://linux-vserver.org/util-vserver:Cgroups
> 
> > Looking at the vsched command it also has options for:
> 
> > --fill-rate2 <fill-rate2> --interval2 <interval2>
> 
> > how are these used as I was unable to find an example ?
> 
> this is used for idle time (i.e. when all guests become
> idle, the values fill-rate/fill-rate2 and interval/interval2
> are swapped and different shares apply while time is
> artificially advance to a point where at least one guest
> is able to run again
> 
> best,
> Herbert
> 

Thank you Herbert, that is very informative.  Yes, I have read about CGroups and will
look to implement when the kernel is upgraded (and try it out in the lab first).
-- 
Thanks, Phil