Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Aug 1999 21:43:31 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        freebsd-fs@freebsd.org
Subject:   better ffs-4096-512 ... ext2fs-4096-4096 benchmarks
Message-ID:  <199908141143.VAA00836@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
This tests filesystems with various block sizes in a few simple ways.
The filesystems are now 1/3 filled with interesting data (a copy of
/home/ncvs which takes about 750000000 bytes of tar output).  I'm mainly
interested in the read benchmark (tar cf /dev/null ncvs) so I didn't
test -async or soft updates.

`tarcp' is two tars in a pipe with a block size of 1MB (the details
don't matter because the filesystems are on separate drives).

The results are as I expected, except reading ext2fs-4096-4096 is now
about 2.5 times faster than for the best ffs layout.  The throughput of
7-8MB/sec is about 40% of the drive's throughput.  This is surprisingly
large for a filesystem with lots of small files (79772 files with average
size 9500 bytes).

Bruce

ffs-4096-512:
fsck /dev/rwd2e:              12.56 real         2.59 user         0.18 sys
tarcp /d ncvs:              1509.69 real         4.76 user        74.37 sys
umount /d:                     2.00 real         0.00 user         0.29 sys
fsck /dev/rwd2e:              52.68 real         3.24 user         0.93 sys
tar cf /dev/null ncvs:       364.42 real         1.73 user        22.31 sys
ffs-4096-1024:
fsck /dev/rwd2e:               6.52 real         1.60 user         0.08 sys
tarcp /d ncvs:              1489.87 real         4.64 user        72.98 sys
umount /d:                     1.81 real         0.00 user         0.32 sys
fsck /dev/rwd2e:              45.52 real         2.22 user         0.81 sys
tar cf /dev/null ncvs:       327.91 real         1.76 user        21.89 sys
ffs-4096-2048:
fsck /dev/rwd2e:               3.97 real         1.12 user         0.01 sys
tarcp /d ncvs:              1411.08 real         4.31 user        71.62 sys
umount /d:                     1.06 real         0.00 user         0.31 sys
fsck /dev/rwd2e:              38.90 real         1.54 user         0.90 sys
tar cf /dev/null ncvs:       290.50 real         1.89 user        21.17 sys
ffs-4096-4096:
fsck /dev/rwd2e:               2.87 real         0.83 user         0.03 sys
tarcp /d ncvs:              1421.98 real         4.62 user        72.29 sys
umount /d:                     1.49 real         0.00 user         0.32 sys
fsck /dev/rwd2e:              40.72 real         1.31 user         0.80 sys
tar cf /dev/null ncvs:       283.48 real         1.86 user        21.93 sys
ffs-8192-1024:
fsck /dev/rwd2e:               5.93 real         1.27 user         0.13 sys
tarcp /d ncvs:              1444.24 real         5.07 user       148.23 sys
umount /d:                     0.51 real         0.00 user         0.30 sys
fsck /dev/rwd2e:              38.46 real         1.93 user         0.84 sys
tar cf /dev/null ncvs:       348.17 real         1.84 user        46.74 sys
ffs-8192-2048:
fsck /dev/rwd2e:               3.90 real         0.80 user         0.04 sys
tarcp /d ncvs:              1404.55 real         5.26 user       130.78 sys
umount /d:                     0.93 real         0.00 user         0.32 sys
fsck /dev/rwd2e:              35.04 real         1.43 user         0.71 sys
tar cf /dev/null ncvs:       308.19 real         1.83 user        40.08 sys
ffs-8192-4096:
fsck /dev/rwd2e:               2.68 real         0.52 user         0.05 sys
tarcp /d ncvs:              1379.23 real         5.41 user       123.14 sys
umount /d:                     1.13 real         0.00 user         0.31 sys
fsck /dev/rwd2e:              34.02 real         1.14 user         0.70 sys
tar cf /dev/null ncvs:       260.32 real         1.59 user        20.33 sys
ffs-8192-8192:
[deleted -- invalid due to insufficient inodes]
ffs-16384-2048:
fsck /dev/rwd2e:               3.78 real         0.69 user         0.03 sys
tarcp /d ncvs:              1379.81 real         5.71 user       128.53 sys
umount /d:                     1.04 real         0.00 user         0.30 sys
fsck /dev/rwd2e:              31.27 real         1.31 user         0.70 sys
tar cf /dev/null ncvs:       294.19 real         2.18 user        34.96 sys
ffs-16384-4096:
fsck /dev/rwd2e:               2.46 real         0.41 user         0.01 sys
tarcp /d ncvs:              1359.52 real         5.40 user       121.19 sys
umount /d:                     1.06 real         0.00 user         0.31 sys
fsck /dev/rwd2e:              30.66 real         0.98 user         0.72 sys
tar cf /dev/null ncvs:       272.84 real         1.86 user        32.19 sys
ffs-16384-8192:
[deleted -- invalid due to insufficient inodes]
ffs-16384-16384:
[deleted -- invalid due to insufficient inodes]
ext2fs-1024-1024:
fsck.ext2 /dev/wd2e:        [deleted -- invalid du to missing -f]
tarcp /d ncvs:              1519.08 real         4.71 user        77.18 sys
umount /d:                     3.73 real         0.00 user         0.32 sys
fsck.ext2 /dev/wd2e:        [deleted -- invalid du to missing -f]
tar cf /dev/null ncvs:       231.99 real         2.13 user        33.79 sys
ext2fs-4096-4096:
fsck.ext2 /dev/wd2e:        [deleted -- invalid du to missing -f]
tarcp /d ncvs:              1163.38 real         4.62 user        65.75 sys
umount /d:                     1.71 real         0.00 user         0.33 sys
fsck.ext2 /dev/wd2e:        [deleted -- invalid du to missing -f]
tar cf /dev/null ncvs:       101.68 real         1.81 user        23.96 sys

#!/bin/sh

for b in 4096 8192 16384
do
	for f in $(($b / 8)) $(($b / 4)) $(($b / 2)) $b
	do
		echo ffs-$b-$f: >>/tmp/ztimes
		newfs -b $b -f $f /dev/rwd2e
		echo -n "fsck /dev/rwd2e:       " >>/tmp/ztimes
		sync
		time fsck /dev/rwd2e 2>>/tmp/ztimes
		mount /dev/wd2e /d
		cd /home
		echo -n "tarcp /d ncvs:         " >>/tmp/ztimes
		sync
		time tarcp /d ncvs 2>>/tmp/ztimes
		echo -n "umount /d:             " >>/tmp/ztimes
		time umount /d 2>>/tmp/ztimes
		echo -n "fsck /dev/rwd2e:       " >>/tmp/ztimes
		sync
		time fsck /dev/rwd2e 2>>/tmp/ztimes
		mount /dev/wd2e /d
		cd /d
		echo -n "tar cf /dev/null ncvs: " >>/tmp/ztimes
		sync
		time tar cf /dev/null ncvs 2>>/tmp/ztimes
		cd /tmp
		umount /d
	done
done

for b in 1024 4096
do
	for f in $b
	do
		echo ext2fs-$b-$f: >>/tmp/ztimes
		# linux
		mkfs.ext2 -b $b /dev/rwd2e $((4754368 / ($b / 512)))
		sync
		echo -n "fsck.ext2 /dev/wd2e:  " >>/tmp/ztimes
		time fsck.ext2 /dev/wd2e 2>>/tmp/ztimes
		mount -t ext2fs /dev/wd2e /d
		cd /home
		echo -n "tarcp /d ncvs:         " >>/tmp/ztimes
		sync
		time tarcp /d ncvs 2>>/tmp/ztimes
		echo -n "umount /d:             " >>/tmp/ztimes
		time umount /d 2>>/tmp/ztimes
		echo -n "fsck.ext2 /dev/wd2e:  " >>/tmp/ztimes
		sync
		time fsck.ext2 /dev/wd2e 2>>/tmp/ztimes
		mount -t ext2fs /dev/wd2e /d
		cd /d
		echo -n "tar cf /dev/null ncvs: " >>/tmp/ztimes
		sync
		time tar cf /dev/null ncvs 2>>/tmp/ztimes
		cd /tmp
		umount /d
	done
done


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199908141143.VAA00836>