Home | History | Annotate | Line # | Download | only in linux-kernel
      1 # !/bin/sh
      2 set -e
      3 
      4 # Benchmarks run on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM.
      5 # The VM is running on a Macbook Pro with a 3.1 GHz Intel Core i7 processor and
      6 # 16 GB of RAM and an SSD.
      7 
      8 # silesia is a directory that can be downloaded from
      9 # http://mattmahoney.net/dc/silesia.html
     10 # ls -l silesia/
     11 # total 203M
     12 # -rwxr-xr-x 1 terrelln 9.8M Apr 12  2002 dickens
     13 # -rwxr-xr-x 1 terrelln  49M May 31  2002 mozilla
     14 # -rwxr-xr-x 1 terrelln 9.6M Mar 20  2003 mr
     15 # -rwxr-xr-x 1 terrelln  32M Apr  2  2002 nci
     16 # -rwxr-xr-x 1 terrelln 5.9M Jul  4  2002 ooffice
     17 # -rwxr-xr-x 1 terrelln 9.7M Apr 11  2002 osdb
     18 # -rwxr-xr-x 1 terrelln 6.4M Apr  2  2002 reymont
     19 # -rwxr-xr-x 1 terrelln  21M Mar 25  2002 samba
     20 # -rwxr-xr-x 1 terrelln 7.0M Mar 24  2002 sao
     21 # -rwxr-xr-x 1 terrelln  40M Mar 25  2002 webster
     22 # -rwxr-xr-x 1 terrelln 8.1M Apr  4  2002 x-ray
     23 # -rwxr-xr-x 1 terrelln 5.1M Nov 30  2000 xml
     24 
     25 # $HOME is on a ext4 filesystem
     26 BENCHMARK_DIR="$HOME/silesia/"
     27 N=10
     28 
     29 # Normalize the environment
     30 sudo umount /mnt/btrfs 2> /dev/null > /dev/null || true
     31 sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs
     32 sudo rm -rf /mnt/btrfs/*
     33 sync
     34 sudo umount /mnt/btrfs
     35 sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs
     36 
     37 # Run the benchmark
     38 echo "Compression"
     39 time sh -c "for i in \$(seq $N); do sudo cp -r $BENCHMARK_DIR /mnt/btrfs/\$i; done; sync"
     40 
     41 echo "Approximate compression ratio"
     42 printf "%d / %d\n"                                                             \
     43   $(df /mnt/btrfs --output=used -B 1 | tail -n 1)                              \
     44   $(sudo du /mnt/btrfs -b -d 0 | tr '\t' '\n' | head -n 1);
     45 
     46 # Unmount and remount to avoid any caching
     47 sudo umount /mnt/btrfs
     48 sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs
     49 
     50 echo "Decompression"
     51 time sudo tar -c /mnt/btrfs 2> /dev/null | wc -c > /dev/null
     52 
     53 sudo rm -rf /mnt/btrfs/*
     54 sudo umount /mnt/btrfs
     55 
     56 # Run for each of -o compress-force={none, lzo, zlib, zstd} 5 times and take the
     57 # min time and ratio.
     58 # Ran zstd with compression levels {1, 3, 6, 9, 12, 15}.
     59 # Original size: 2119415342 B (using du /mnt/btrfs)
     60 
     61 # none
     62 # compress: 4.205 s
     63 # decompress: 3.090 s
     64 # ratio: 0.99
     65 
     66 # lzo
     67 # compress: 5.328 s
     68 # decompress: 4.793 s
     69 # ratio: 1.66
     70 
     71 # zlib
     72 # compress: 32.588 s
     73 # decompress: 8.791 s
     74 # ratio : 2.58
     75 
     76 # zstd 1
     77 # compress: 8.147 s
     78 # decompress: 5.527 s
     79 # ratio : 2.57
     80 
     81 # zstd 3
     82 # compress: 12.207 s
     83 # decompress: 5.195 s
     84 # ratio : 2.71
     85 
     86 # zstd 6
     87 # compress: 30.253 s
     88 # decompress: 5.324 s
     89 # ratio : 2.87
     90 
     91 # zstd 9
     92 # compress: 49.659 s
     93 # decompress: 5.220 s
     94 # ratio : 2.92
     95 
     96 # zstd 12
     97 # compress: 99.245 s
     98 # decompress: 5.193 s
     99 # ratio : 2.93
    100 
    101 # zstd 15
    102 # compress: 196.997 s
    103 # decompress: 5.992 s
    104 # ratio : 3.01
    105