All of lore.kernel.org
 help / color / mirror / Atom feed
* CFQ IOsched / CGROUPs: How can a process with realtime/0 IO priority starve for several seconds?
@ 2011-06-13 18:24 marcel partap
  0 siblings, 0 replies; only message in thread
From: marcel partap @ 2011-06-13 18:24 UTC (permalink / raw)
  To: linux-kernel

Greetings Kernelings.
Today i have a very curious issue to bring forward that has been 
bothering me for some time. But because i just got myself my first basic 
CGROUP setup, i considered hickups like this to be a thing of the past: 
Under heavy IO load, mpd starts skipping, sometimes even for a few 
seconds. That with mpd being in my 'swift' CGROUP which has, as can be 
seen below, a blkio.weight of 1000 - double the default of 500 and 100 
times 'idle' class processes like munin-graph get. Nevertheless, it 
repeatedly happens that multiple processes accumulate in IOWAIT stage. 
What i would expect is that the drastically higher blkio.weight would 
prevent mpd to starve on disk input (it needs 30k/s or something), 
instead it stutters a lot making me want to #bash my head against a 
#shell or sumthing ^^
When i noticed the mpd process showed up as besteffort/4 in iotop, i 
re-ioniced it to realtime/0. That did nothing to improve the situation! 
That's in line with my earlier notion that a process in IOWAIT seems not 
to be unblocked by re-ionicing it to realtime!? That really confuses me. 
Doesn't realtime IO scheduling mean that... ???

So how comes? *How can a process even with high blkio.weight and 
realtime/0 IO priority starve for several seconds?*

Thx for any insights and please CC me.

#best regards/marcel.

P.S.: i did notice i did not have the CONFIG_CFQ_GROUP_IOSCHED option 
set, and i am going to try that now. But i guess that doesn't quite 
touch my basic question.

appendix
--------

> CONFIG_CGROUPS=y
> CONFIG_CGROUP_FREEZER=y
> CONFIG_CGROUP_DEVICE=y
> CONFIG_CGROUP_CPUACCT=y
> CONFIG_CGROUP_MEM_RES_CTLR=y
> CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
> CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
> CONFIG_CGROUP_PERF=y
> CONFIG_CGROUP_SCHED=y
> CONFIG_FAIR_GROUP_SCHED=y
> CONFIG_RT_GROUP_SCHED=y
> CONFIG_BLK_CGROUP=y
> CONFIG_DEBUG_BLK_CGROUP=y
> CONFIG_SCHED_AUTOGROUP=y
> CONFIG_IOSCHED_NOOP=y
> CONFIG_IOSCHED_DEADLINE=y
> CONFIG_IOSCHED_CFQ=y
> # CONFIG_CFQ_GROUP_IOSCHED is not set
> CONFIG_DEFAULT_IOSCHED="cfq"
> CONFIG_SCHED_OMIT_FRAME_POINTER=y
> CONFIG_SCHED_MC=y
> CONFIG_SCHED_HRTICK=y
> CONFIG_NET_SCHED=y
> CONFIG_SCHED_DEBUG=y
> CONFIG_SCHEDSTATS=y
> CONFIG_SCHED_TRACER=y

a screenshot of the situation: 
http://tinyurl.com/3-0-0-rc2-iosched-troubles-png (iotop in accumulative 
mode)

/etc/cgroup/cgconfig.conf
> mount {
>         blkio = /sys/fs/cgroup;
>         cpu = /sys/fs/cgroup;
>         memory = /sys/fs/cgroup;
> }
>
> group . {
>         blkio {
>                 blkio.weight = 500;
>         }
> }
>
> group idle {
>         blkio {
>                 blkio.weight = 10;
>         }
>         cpu {
>                 cpu.shares = 512;
>         }
>         memory {
>                 memory.swappiness = 90;
>         }
> }
>
> group swift {
>         blkio {
>                 blkio.weight = 1000;
>         }
>         cpu {
>                 cpu.shares = 2048;
>         }
>         memory {
>                 memory.swappiness = 1;
>         }
> }

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-06-13 18:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-13 18:24 CFQ IOsched / CGROUPs: How can a process with realtime/0 IO priority starve for several seconds? marcel partap

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.