11#  !/bin/sh
22set  -e
33
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.
4+ #  Benchmarks run on a Ubuntu 22.04 VM with 2 cores and 8 GiB of RAM.
5+ #  The VM is c6i.xlarge instance with a Intel 8375C 2.90GHz processor and gp3 SSD with throughput 500 MB/s.
6+ #  Hyperthreading disabled
7+ #  Kernel: 6.2
78
89#  silesia is a directory that can be downloaded from
910#  http://mattmahoney.net/dc/silesia.html
10- #  ls -l  silesia/
11+ #  $  ls -lh ./ silesia/
1112#  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
13+ #  -rw-rw-r--  1 ubuntu ubuntu  9.8M Apr 12  2002 dickens
14+ #  -rw-rw-r--  1 ubuntu ubuntu   49M May 31  2002 mozilla
15+ #  -rw-rw-r--  1 ubuntu ubuntu  9.6M Mar 20  2003 mr
16+ #  -rw-rw-r--  1 ubuntu ubuntu   32M Apr  2  2002 nci
17+ #  -rw-rw-r--  1 ubuntu ubuntu  5.9M Jul  4  2002 ooffice
18+ #  -rw-rw-r--  1 ubuntu ubuntu  9.7M Apr 11  2002 osdb
19+ #  -rw-rw-r--  1 ubuntu ubuntu  6.4M Apr  2  2002 reymont
20+ #  -rw-rw-r--  1 ubuntu ubuntu   21M Mar 25  2002 samba
21+ #  -rw-rw-r--  1 ubuntu ubuntu  7.0M Mar 24  2002 sao
22+ #  -rw-rw-r--  1 ubuntu ubuntu   40M Mar 25  2002 webster
23+ #  -rw-rw-r--  1 ubuntu ubuntu  8.1M Apr  4  2002 x-ray
24+ #  -rw-rw-r--  1 ubuntu ubuntu  5.1M Nov 30  2000 xml
2425
2526#  $HOME is on a ext4 filesystem
2627BENCHMARK_DIR=" $HOME /silesia/" 
2728N=10
2829
2930#  Normalize the environment
30- sudo umount /mnt/btrfs 2>   /dev/null >   /dev/null ||  true 
31- sudo mount -t btrfs $@  /dev/sda3  /mnt/btrfs
31+ sudo umount /mnt/btrfs 2> /dev/null > /dev/null ||  true 
32+ sudo mount -t btrfs $@  /dev/nvme1n1  /mnt/btrfs
3233sudo rm -rf /mnt/btrfs/* 
3334sync
3435sudo umount /mnt/btrfs
35- sudo mount -t btrfs $@  /dev/sda3  /mnt/btrfs
36+ sudo mount -t btrfs $@  /dev/nvme1n1  /mnt/btrfs
3637
3738#  Run the benchmark
3839echo  " Compression" 
3940time  sh -c " for i in \$ (seq $N ); do sudo cp -r $BENCHMARK_DIR  /mnt/btrfs/\$ i; done; sync" 
4041
4142echo  " 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) ; 
43+ printf  " print(1 / ( %d / %d)) \n" 
44+   $( df /mnt/btrfs --output=used -B 1 |  tail -n 1) 
45+   $( sudo du /mnt/btrfs -b -d 0 |  tr ' \t' ' \n' |  head -n 1)   |  python3 - 
4546
4647#  Unmount and remount to avoid any caching
4748sudo umount /mnt/btrfs
48- sudo mount -t btrfs $@  /dev/sda3  /mnt/btrfs
49+ sudo mount -t btrfs $@  /dev/nvme1n1  /mnt/btrfs
4950
5051echo  " Decompression" 
51- time  sudo tar -c /mnt/btrfs 2>   /dev/null |  wc -c >   /dev/null
52+ time  sudo tar -c /mnt/btrfs 2> /dev/null |  wc -c > /dev/null
5253
5354sudo rm -rf /mnt/btrfs/* 
5455sudo umount /mnt/btrfs
@@ -60,45 +61,45 @@ sudo umount /mnt/btrfs
6061
6162#  none
6263#  compress: 4.205 s
63- #  decompress: 3.090  s
64+ #  decompress: 3.808  s
6465#  ratio: 0.99
6566
6667#  lzo
67- #  compress: 5.328  s
68- #  decompress: 4.793  s
69- #  ratio: 1.66 
68+ #  compress: 3.021  s
69+ #  decompress: 8.162  s
70+ #  ratio: 1.68 
7071
7172#  zlib
72- #  compress: 32.588  s
73- #  decompress: 8.791  s
74- #  ratio : 2.58 
73+ #  compress: 23.656  s
74+ #  decompress: 17.454  s
75+ #  ratio : 2.64 
7576
7677#  zstd 1
77- #  compress: 8.147  s
78- #  decompress: 5.527  s
79- #  ratio : 2.57 
78+ #  compress: 4.502  s
79+ #  decompress: 9.569  s
80+ #  ratio : 2.64 
8081
8182#  zstd 3
82- #  compress: 12.207  s
83- #  decompress: 5.195  s
84- #  ratio : 2.71 
83+ #  compress: 6.225  s
84+ #  decompress: 9.576  s
85+ #  ratio : 2.78 
8586
8687#  zstd 6
87- #  compress: 30.253  s
88- #  decompress: 5.324  s
89- #  ratio : 2.87 
88+ #  compress: 13.551  s
89+ #  decompress: 9.632  s
90+ #  ratio : 2.94 
9091
9192#  zstd 9
92- #  compress: 49.659  s
93- #  decompress: 5.220  s
94- #  ratio : 2.92 
93+ #  compress: 23.065  s
94+ #  decompress: 10.379  s
95+ #  ratio : 2.99 
9596
9697#  zstd 12
97- #  compress: 99.245  s
98- #  decompress: 5.193  s
99- #  ratio : 2.93 
98+ #  compress: 62.375  s
99+ #  decompress: 11.503  s
100+ #  ratio : 3.00 
100101
101102#  zstd 15
102- #  compress: 196.997  s
103- #  decompress: 5.992  s
104- #  ratio : 3.01 
103+ #  compress: 133.582  s
104+ #  decompress: 12.124  s
105+ #  ratio : 3.14 
0 commit comments