On Thu, 2008-08-14 at 19:44 -0400, Theodore Tso wrote:
quoted
I spent a bunch of time hammering on different ways to fix this without
increasing nr_requests, and it was a mixture of needing better tuning in
btrfs and needing to init mapping->writeback_index on inode allocation.
So, today's numbers for creating 30 kernel trees in sequence:
Btrfs defaults 57.41 MB/s
Btrfs dup no csum 74.59 MB/s
Btrfs no duplication 76.83 MB/s
Btrfs no dup no csum no inline 76.85 MB/s
What sort of script are you using? Basically something like this?
for i in `seq 1 30` do
mkdir $i; cd $i
tar xjf /usr/src/linux-2.6.28.tar.bz2
cd ..
done
Similar. I used compilebench -i 30 -r 0, which means create 30 initial
kernel trees and then do nothing. compilebench simulates compiles by
writing to the FS files of the same size that you would get by creating
kernel trees or compiling them.
The idea is to get all of the IO without needing to keep 2.6.28.tar.bz2
in cache or the compiler using up CPU.
http://www.oracle.com/~mason/compilebench
-chris