Messages in this thread | | | Date | Wed, 12 Dec 2012 01:13:22 +0100 (CET) | From | Jan Engelhardt <> | Subject | Re: Read starvation by sync writes |
| |
On Monday 2012-12-10 23:12, Jan Kara wrote: > > I was looking into IO starvation problems where streaming sync writes (in >my case from kjournald but DIO would look the same) starve reads. This is >because reads happen in small chunks and until a request completes we don't >start reading further (reader reads lots of small files) while writers have >plenty of big requests to submit. Both processes end up fighting for IO >requests and writer writes nr_batching 512 KB requests while reader reads >just one 4 KB request or so.[...] >Simple reproducer is: > >echo 3 >/proc/sys/vm/drop_caches >dd if=/dev/zero of=/tmp/f bs=1M count=10000 & >sleep 30 >time cat /etc/* 2>&1 >/dev/null >killall dd >rm /tmp/f > > The question is how can we fix this?
The ROW scheduler attempts to address it up by prioritizing reads, and it works out for me.
(Mail info.) Date: Tue, 11 Dec 2012 14:41:18 From: Tanya Brokhman <tlinder@codeaurora.org> Subject: [PATCH v4 0/2] ROW scheduling Algorithm
| |