On Sun, Sep 22, 2002 at 05:54:27PM +0200, Marc-Christian Petersen
wrote:> : without index mount:
>
> root@codeman:[/test] # time randfiles foo 100000
>
> real 32m55.929s
> user 0m1.890s
> sys 32m2.500s
>
> : with index mount:
>
> root@codeman:[/test] # time randfiles foo 100000
>
> real 32m53.929s
> user 0m1.690s
> sys 32m0.500s
These times don't look right. Are you sure you created the filesystem
was using directorying indexing turned on? With it turned on,
creating 100,000 files should take 10-20 seconds depending on the
speed of your system and hard disks.
Here's the test script I use for testing directory indexing:
#!/bin/sh
dd if=/dev/zero of=test.img bs=8k count=30000
mke2fs -j -F -b 1024 -g 1024 -N 1200000 test.img
debugfs -w -R "features dir_index" test.img
debugfs -w -R "ssv def_hash_version tea" test.img
debugfs -w -R "ssv hash_seed random" test.img
mount -t ext3 -o loop test.img /mnt
pushd /mnt
mkdir test test2 test3
cd test
time seq -f "%06.0f" 1 100 | xargs touch
cd ..
cd test2
time seq -f "%06.0f" 1 10000 | xargs touch
cd ..
cd test3
time seq -f "%06.0f" 1 100000 | xargs touch
cd ..
popd
umount /mnt
(You can comment out the 'dd' line after the first time you run the
test to speeds things up a bit.)
On my system, creating the files in the test3 directory takes 11.408
seconds real time, with 6.221 seconds of system time with the
directory indexing. If I comment out the debugfs line which activates
the "dir_index" filesystem feature flag, then directory indexing is
turned off, and the script takes 38:07 minutes of real time, with
38:05 of it being system time.
Your times are consistent with directory indexing not being turned on.
- Ted
P.S. These tests were with 2.5.36 using the patches available at
http://thunk.org/tytso/linux/ext3-dxdir
There are also patches against 2.4.19 available. There are a few
minor bugs still with the 2.5.36 patches, but they will be fixed in
the patches against 2.5.38 which I should have ready shortly.