Skip to content

Commit 3cd6e89

Browse files
committed
benchmark
1 parent 77ca96e commit 3cd6e89

9 files changed

Lines changed: 619 additions & 1 deletion

File tree

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Catfs is a caching filesystem written in Rust.
77
Catfs allows you to have cached access to another (possibily remote)
88
filesystem. Caching semantic is read-ahead and write-through (see
99
[Current Status](#current-status)). Currently it only provides a data
10-
cache.
10+
cache and all metadata operations hit the source filesystem.
1111

1212
Catfs is ALPHA software. Don't use this if you value your data.
1313

@@ -35,6 +35,17 @@ $ catfs <from> <to> <mountpoint>
3535
Catfs will expose files in `<from>` under `<mountpoint>`, and cache
3636
them to `<to>` as they are accessed.
3737

38+
# Benchmark
39+
40+
Compare running catfs with two local directories on the same
41+
filesystem with direct access. This is not a realistic use case but
42+
should give you an idea of the worst case slowdown.
43+
44+
![Benchmark result](/bench/bench.png?raw=true "Benchmark")
45+
46+
Write is twice as slow as expected since we are writing twice the
47+
amount. However it's not clear why `ls` is so slow.
48+
3849
# License
3950

4051
Copyright (C) 2017 Ka-Hing Cheung

bench/bench.catfs

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
create_files 0.061
2+
rm_files 0.078
3+
create_files 0.044
4+
rm_files 0.093
5+
create_files 0.043
6+
rm_files 0.095
7+
create_files 0.062
8+
rm_files 0.093
9+
create_files 0.057
10+
rm_files 0.151
11+
create_files 0.049
12+
rm_files 0.097
13+
create_files 0.051
14+
rm_files 0.124
15+
create_files 0.064
16+
rm_files 0.093
17+
create_files 0.047
18+
rm_files 0.099
19+
create_files 0.044
20+
rm_files 0.091
21+
create_files_parallel 0.052
22+
rm_files_parallel 0.076
23+
create_files_parallel 0.049
24+
rm_files_parallel 0.048
25+
create_files_parallel 0.038
26+
rm_files_parallel 0.053
27+
create_files_parallel 0.060
28+
rm_files_parallel 0.052
29+
create_files_parallel 0.064
30+
rm_files_parallel 0.052
31+
create_files_parallel 0.046
32+
rm_files_parallel 0.062
33+
create_files_parallel 0.054
34+
rm_files_parallel 0.079
35+
create_files_parallel 0.060
36+
rm_files_parallel 0.058
37+
create_files_parallel 0.057
38+
rm_files_parallel 0.082
39+
create_files_parallel 0.063
40+
rm_files_parallel 0.054
41+
write_md5 10.257
42+
read_md5 2.175
43+
read_first_byte 0.012
44+
write_md5 8.854
45+
read_md5 2.164
46+
read_first_byte 1.253
47+
write_md5 9.548
48+
read_md5 2.200
49+
read_first_byte 1.241
50+
write_md5 8.711
51+
read_md5 2.205
52+
read_first_byte 1.056
53+
write_md5 8.129
54+
read_md5 2.165
55+
read_first_byte 0.009
56+
write_md5 10.159
57+
read_md5 2.194
58+
read_first_byte 1.004
59+
write_md5 8.396
60+
read_md5 2.169
61+
read_first_byte 0.007
62+
write_md5 9.489
63+
read_md5 2.162
64+
read_first_byte 0.680
65+
write_md5 8.230
66+
read_md5 2.174
67+
read_first_byte 0.545
68+
write_md5 8.152
69+
read_md5 2.147
70+
read_first_byte 2.135
71+
ls_files 0.083
72+
ls_files 0.054
73+
ls_files 0.073
74+
ls_files 0.069
75+
ls_files 0.060
76+
ls_files 0.057
77+
ls_files 0.055
78+
ls_files 0.080
79+
ls_files 0.080
80+
ls_files 0.070

bench/bench.data

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#operation,time
2+
Create 100 files 0.0522 0.043 0.064 0.0199 0.017 0.023
3+
Unlink 100 files 0.0958888888889 0.078 0.124 0.0857777777778 0.078 0.093
4+
Create 100 files (parallel) 0.0561111111111 0.046 0.064 0.0411111111111 0.039 0.046
5+
Unlink 100 files (parallel) 0.0616 0.048 0.082 0.0488888888889 0.041 0.055
6+
ls with 1000 files 0.0681 0.054 0.083 0.0232222222222 0.022 0.025
7+
Write 1GB 8.9925 8.129 10.257 4.9699 4.395 5.813
8+
Read 1GB 2.1755 2.147 2.205 2.21633333333 2.149 2.292
9+
Time to 1st byte 0.645222222222 0.007 1.253 0.004 0.003 0.005

bench/bench.local

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
create_files 0.021
2+
rm_files 0.084
3+
create_files 0.020
4+
rm_files 0.080
5+
create_files 0.017
6+
rm_files 0.078
7+
create_files 0.019
8+
rm_files 0.127
9+
create_files 0.022
10+
rm_files 0.088
11+
create_files 0.017
12+
rm_files 0.088
13+
create_files 0.020
14+
rm_files 0.085
15+
create_files 0.021
16+
rm_files 0.093
17+
create_files 0.023
18+
rm_files 0.083
19+
create_files 0.019
20+
rm_files 0.093
21+
create_files_parallel 0.039
22+
rm_files_parallel 0.051
23+
create_files_parallel 0.040
24+
rm_files_parallel 0.041
25+
create_files_parallel 0.024
26+
rm_files_parallel 0.049
27+
create_files_parallel 0.040
28+
rm_files_parallel 0.050
29+
create_files_parallel 0.046
30+
rm_files_parallel 0.048
31+
create_files_parallel 0.040
32+
rm_files_parallel 0.049
33+
create_files_parallel 0.041
34+
rm_files_parallel 0.055
35+
create_files_parallel 0.040
36+
rm_files_parallel 0.049
37+
create_files_parallel 0.040
38+
rm_files_parallel 0.048
39+
create_files_parallel 0.044
40+
rm_files_parallel 0.059
41+
write_md5 4.950
42+
read_md5 2.256
43+
read_first_byte 0.010
44+
write_md5 4.566
45+
read_md5 2.264
46+
read_first_byte 0.004
47+
write_md5 5.370
48+
read_md5 2.360
49+
read_first_byte 0.004
50+
write_md5 5.813
51+
read_md5 2.189
52+
read_first_byte 0.003
53+
write_md5 4.557
54+
read_md5 2.230
55+
read_first_byte 0.003
56+
write_md5 4.603
57+
read_md5 2.206
58+
read_first_byte 0.005
59+
write_md5 4.911
60+
read_md5 2.193
61+
read_first_byte 0.004
62+
write_md5 5.745
63+
read_md5 2.168
64+
read_first_byte 0.003
65+
write_md5 4.395
66+
read_md5 2.149
67+
read_first_byte 0.005
68+
write_md5 4.789
69+
read_md5 2.292
70+
read_first_byte 0.005
71+
ls_files 0.028
72+
ls_files 0.022
73+
ls_files 0.023
74+
ls_files 0.023
75+
ls_files 0.024
76+
ls_files 0.025
77+
ls_files 0.023
78+
ls_files 0.023
79+
ls_files 0.023
80+
ls_files 0.023

bench/bench.png

25.3 KB
Loading

0 commit comments

Comments
 (0)