Re: Sched_autogroup and niced processes

From: Mike Galbraith
Date: Fri May 13 2011 - 04:06:03 EST


On Fri, 2011-05-13 at 15:53 +0800, Yong Zhang wrote:
> Cc'ing more people.
>
> On Fri, May 13, 2011 at 3:39 PM, Carl-Johan Kjellander
> <carl-johan@xxxxxxxxxx> wrote:
> > I've been running seti@home niced to 19 in the background since 1999
> > without any problems. No noticeable effect even when playing a movie
> > or a game. But since 2.6.38 the new fix-all-problems automatic
> > grouping has been messing a bit with me. These are some timed compiles
> > on my 8 cores.

Heh, it's not a fix-all-problems thingy, and was never intended to be.
It's also not enabled by default.

> > time make -j12 # with seti@home running
> > real 4m16.753s
> > user 10m33.770s
> > sys 1m39.710s
> >
> > time make -j12 # without seti@home running
> > real 2m12.480s
> > user 10m11.580s
> > sys 1m39.980s
> >
> > echo 0 > /proc/sys/kernel/sched_autogroup_enabled
> > time make -j12 # no autogroup, seti@home running again
> > real 2m33.276s
> > user 10m37.540s
> > sys 1m43.190s
> >
> > All compiles already had all files cached in RAM.
> >
> > Now I can take the 10% performance hit, but not the 100% hit of
> > running stuff super niced in the background. Processes niced to 19
> > should only use spare cycles and not take up half of the cores even
> > with autogroup. I would really like to run autogroup since it is a
> > neat idea, but it can't mess up running niced processes in the
> > background which have been working fine for 12 years.
>
> Then how about change the nice value of seti@home->autogroup?
> echo 19 > /proc/'pid of seti@home'/autogroup

Yup. Overhead and whatnot is the dark side of group scheduling. The
thing to do is to turn group scheduling off if you don't like what it
does for/to you.

-Mike

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/