1
1
# !/bin/sh
2
2
set -e
3
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.
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
7
8
8
9
# silesia is a directory that can be downloaded from
9
10
# http://mattmahoney.net/dc/silesia.html
10
- # ls -l silesia/
11
+ # $ ls -lh ./ silesia/
11
12
# 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
24
25
25
26
# $HOME is on a ext4 filesystem
26
27
BENCHMARK_DIR=" $HOME /silesia/"
27
28
N=10
28
29
29
30
# 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
32
33
sudo rm -rf /mnt/btrfs/*
33
34
sync
34
35
sudo umount /mnt/btrfs
35
- sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs
36
+ sudo mount -t btrfs $@ /dev/nvme1n1 /mnt/btrfs
36
37
37
38
# Run the benchmark
38
39
echo " Compression"
39
40
time sh -c " for i in \$ (seq $N ); do sudo cp -r $BENCHMARK_DIR /mnt/btrfs/\$ i; done; sync"
40
41
41
42
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) ;
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 -
45
46
46
47
# Unmount and remount to avoid any caching
47
48
sudo umount /mnt/btrfs
48
- sudo mount -t btrfs $@ /dev/sda3 /mnt/btrfs
49
+ sudo mount -t btrfs $@ /dev/nvme1n1 /mnt/btrfs
49
50
50
51
echo " 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
52
53
53
54
sudo rm -rf /mnt/btrfs/*
54
55
sudo umount /mnt/btrfs
@@ -60,45 +61,45 @@ sudo umount /mnt/btrfs
60
61
61
62
# none
62
63
# compress: 4.205 s
63
- # decompress: 3.090 s
64
+ # decompress: 3.808 s
64
65
# ratio: 0.99
65
66
66
67
# 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
70
71
71
72
# 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
75
76
76
77
# 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
80
81
81
82
# 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
85
86
86
87
# 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
90
91
91
92
# 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
95
96
96
97
# 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
100
101
101
102
# 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