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>