definitely, but again the most important by far is to submit big
commands, if you get the 512k commands interleaved by different task
it isn't a panic situation.
> Readahead is brute force. The anticipatory scheduler solves this in a
> smarter way.
If you decrease readahead with anticipatory scheduler you will submit
the small commands, if you decrease the readahead you can stall 10
minutes any write in the queue, and still you won't grow the command in
the head of the queue.
> vmm:/mnt/hda6> for i in $(seq 1 8)
> for> do
> for> dd if=/dev/zero of=file$i bs=1M count=10
> for> sync
> for> fadvise file$i 0 999999999 dontneed
what is this fadvise doing?
> for> done
>
> vmm:/home/akpm> 0 blockdev --setra 240 /dev/hda1
> for i in $(seq 1 8)
> do
> time cat file$i >/dev/null&
> done
> cat file$i > /dev/null 0.00s user 0.01s system 0% cpu 4.422 total
> cat file$i > /dev/null 0.00s user 0.01s system 0% cpu 5.801 total
> cat file$i > /dev/null 0.00s user 0.01s system 0% cpu 6.012 total
> cat file$i > /dev/null 0.00s user 0.01s system 0% cpu 6.261 total
> cat file$i > /dev/null 0.00s user 0.02s system 0% cpu 6.401 total
> cat file$i > /dev/null 0.00s user 0.01s system 0% cpu 6.494 total
> cat file$i > /dev/null 0.00s user 0.01s system 0% cpu 6.754 total
> cat file$i > /dev/null 0.00s user 0.01s system 0% cpu 6.757 total
>
> vmm:/mnt/hda6> for i in $(seq 1 8)
> do
> fadvise file$i 0 999999999 dontneed
> done
> vmm:/home/akpm> 0 blockdev --setra 4 /dev/hda1
> vmm:/mnt/hda6> for i in $(seq 1 8)
> do
> time cat file$i >/dev/null&
> done
> cat file$i > /dev/null 0.00s user 0.02s system 0% cpu 13.373 total
> cat file$i > /dev/null 0.00s user 0.04s system 0% cpu 14.849 total
> cat file$i > /dev/null 0.00s user 0.02s system 0% cpu 15.816 total
> cat file$i > /dev/null 0.00s user 0.04s system 0% cpu 16.808 total
> cat file$i > /dev/null 0.00s user 0.05s system 0% cpu 17.824 total
> cat file$i > /dev/null 0.00s user 0.03s system 0% cpu 19.004 total
> cat file$i > /dev/null 0.00s user 0.03s system 0% cpu 19.274 total
> cat file$i > /dev/null 0.00s user 0.03s system 0% cpu 19.301 total
>
> So with eight files, it's a 300% drop from not using readahead.
yes, and anticipatory scheduler isn't going to fix it. furthmore with
IDE the max merging is 64k so you can see little of the whole picture.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/