Subject: Re: Summer of code ideas
To: None <wrstuden@netbsd.org>
From: Johan A.van Zanten <johan@giantfoo.org>
List: netbsd-users
Date: 03/23/2007 01:30:33
Bill Stouder-Studenmund <wrstuden@netbsd.org> wrote:
> On Sun, Mar 18, 2007 at 08:38:47AM +0100, Dieter wrote:
> > > > Soft updates gives higher performance than journaling in most (not all) cases.
> > > 
> > > Can you actually demonstrate that this is the case?
> > 
> > IIRC these papers do.
> > 
> > http://www.usenix.org/publications/library/proceedings/usenix99/mckusick.html
> > http://www.usenix.org/publications/library/proceedings/usenix2000/general/seltzer.html
> 
> Do you have any recent references? Specifically NetBSD-based ones?

  I did everything possible as a non-root user.

 Sorry this isn't formatted better -- i wanted to answer your question,
but don't have a lot of free time. :)

Commands that start with "+" were run from a Bourne shell script as
non-root.

FFS was faster in all but one of the tests (mv).

  -johan

uname -a:

NetBSD pangu 3.1 NetBSD 3.1 (KUNGPAO) #1: Fri Feb 16 21:21:38 CST 2007  johan@pangu:/tew/006/src/NetBSD/NetBSD-3/src/sys/arch/i386/compile/KUNGPAO i386

pangu is 2.4 GHz pentium 4 with 1.5 GB RAM.

wd1 at atabus0 drive 1: <Maxtor 7H500F0>	(500 GB SATA drive)

pangu:/ $ ls -s  /tew/src/NetBSD/NetBSD-3/sets/src.tgz
43640 /tew/src/NetBSD/NetBSD-3/sets/src.tgz

# newfs /dev/wd1a
# mount -o softdep /dev/wd1a /mnt
# chown johan /mnt

+ cd /mnt
+ cat /tew/src/NetBSD/NetBSD-3/sets/src.tgz
+ time tar zxf /tew/src/NetBSD/NetBSD-3/sets/src.tgz
        9.48 real         3.32 user         5.52 sys
+ time chmod -R o-rwx .
        0.56 real         0.07 user         0.45 sys
+ time find . -type f -exec mv {} {}.old ;
       53.67 real        20.58 user        23.04 sys
+ time find . -type f -exec cp {} {}.fo ;
       63.98 real        25.29 user        29.36 sys
+ exit

----------------------------------------------------------------------

( update partition type to 4.4LFS )

# newfs_lfs -A /dev/rwd1a
bw = 67423436 B/s, seek time 6 ms (143 seeks/s)
using initial segment size 1885696
Segment size 1885696 is not a multiple of frag size; trying size 1886208.
Creating a version 2 LFS with roll-forward ident 0x21a6539
476939.5MB in 265139 segments of size 1886208
super-block backups (for fsck -b #) at:
16, 97673892, 195347784, 293021676, 390695568, 488369460, 586043352, 
683717244, 781391136, 879065028.
# mount /dev/wd1a /mnt

+ cd /mnt
+ cat /tew/src/NetBSD/NetBSD-3/sets/src.tgz
+ time tar zxf /tew/src/NetBSD/NetBSD-3/sets/src.tgz
       13.04 real         3.21 user         5.82 sys
+ time chmod -R o-rwx .
        0.81 real         0.14 user         0.59 sys
+ time find . -type f -exec mv {} {}.old ;
       41.02 real        18.92 user        21.17 sys
+ time find . -type f -exec cp {} {}.fo ;
       71.32 real        24.85 user        28.39 sys
+ exit

-------------------------------------------------------------------------

# newfs_lfs  /dev/rwd1a
newfs_lfs: newfs_lfs: disklabel segment size (16384) too small, using
default (1048576)
Creating a version 2 LFS with roll-forward ident 0x1e86c01e
476940.0MB in 476940 segments of size 1048576
super-block backups (for fsck -b #) at:
16, 97677312, 195354624, 293031936, 390709248, 488386560, 586063872, 
683741184, 781418496, 879095808.
# mount /dev/wd1a /mnt

+ cd /mnt
+ cat /tew/src/NetBSD/NetBSD-3/sets/src.tgz
+ time tar zxf /tew/src/NetBSD/NetBSD-3/sets/src.tgz
       12.72 real         3.17 user         5.48 sys
+ time chmod -R o-rwx .
        0.90 real         0.04 user         0.68 sys
+ time find . -type f -exec mv {} {}.old ;
       41.19 real        18.80 user        21.08 sys
+ time find . -type f -exec cp {} {}.fo ;
       67.18 real        24.61 user        28.53 sys
+ exit