nicer output
[tridge/junkcode.git] / testldbspeed.sh
1 #!/bin/bash
2
3 [ $# -eq 5 ] || {
4 cat <<EOF
5 usage: testldbspeed.sh DEVICE FSTYPE MNTOPTIONS MNTPOINT LDBTEST
6
7 example usage:
8
9   testldbspeed.sh /dev/sda6 ext3 "-o barrier=1" /mnt/ldbtest "/home/tridge/samba/git/combined/source4/bin/ldbtest -H test.ldb --num-records=200 --num-searches=10"
10
11   testldbspeed.sh /dev/sda6 ext4 "-o barrier=0" /mnt/ldbtest "/home/tridge/samba/git/combined/source4/bin/tdbtorture -t -n 1 -s 1"
12
13 Test results:
14    using tdbtorture -t -n 1 -l 5000 -s 1
15    2.6.31-19-generic on x86_64 Ubuntu Karmic. 
16    2G partition on a 500G Seagate Momentus 7200.4 SATA disk
17    T61 Thinkpad
18
19    ext2  (defaults)          1.7s
20
21    ext3  (defaults)          2.0s
22    ext3 -o barrier=1         11.5s
23
24    ext4  (defaults)          35.6s
25    ext4 -o nobarrier         2.8s
26
27    btrfs (defaults)          104s
28    btrfs -o nobarrier        27.5s
29
30    xfs   (defaults)          14.1s
31
32    jfs   (defaults)          2.0s
33 EOF
34     exit 1
35 }
36
37 DEV="$1"
38 FSTYPE="$2"
39 MNTOPTIONS="$3"
40 MNTPOINT="$4"
41 LDBTEST="$5"
42
43 grep "$DEV" /proc/mounts && {
44     umount -f "$DEV" || exit 1
45 }
46 mkfs."$FSTYPE" "$DEV" || exit 1
47 mkdir -p "$MNTPOINT" || exit 1
48 mount "$DEV" $MNTOPTIONS "$MNTPOINT" || exit 1
49
50 pushd "$MNTPOINT" || exit 1
51 sync; sync; sleep 1;
52 time $LDBTEST
53 sync
54 popd
55 umount "$DEV"