Goofys 是使用 Go 编写,基于 S3 接口的 Filey 系统。
Goofys 允许你挂载一个 s3 bucket 作为一个 Filey 系统。为什么是 Filey 系统而不是 File 系统?因为 goofys 优先考虑性能而不是 POSIX。
使用:
<pre class="brush:shell;toolbar: true; auto-links: false;">$ go get github.com/kahing/goofys
$ go install github.com/kahing/goofys
$ cat > ~/.aws/credentials
[default]
aws_access_key_id = AKID1234567890
aws_secret_access_key = MY-SECRET-KEY
$ $GOPATH/bin/goofys <bucket> <mountpoint></pre>
基准测试:
使用 goofys `--stat-cache-ttl 0 --type-cache-ttl 0` 和 s3fs `-ostat_cache_expire=1` 模拟运行。基准测试详情请看 [bench.sh](https://github.com/kahing/goofys/blob/master/bench.sh),同时提供 [Raw data](https://github.com/kahing/goofys/blob/master/bench.data)。测试是在 EC2 c4.xlarge 下运行的:
operation
goofys
s3fs
speedup
Create 1000 files
49.4 +/- 1.5s
146.0 +/- 15.0s
2.96 +/- 0.32x
Unlink 1000 files
28.1 +/- 0.8s
36.7 +/- 6.2s
1.31 +/- 0.22x
ls with 1000 files
0.21 +/- 0.04s
3.5 +/- 0.6s
16.9 +/- 4.6x
Create 1000 files (parallel)
21.5 +/- 0.4s
134.2 +/- 9.1s
6.2 +/- 0.4x
Unlink 1000 files (parallel)
28.18 +/- 0.35s
38.1 +/- 4.2s
1.35 +/- 0.15x
Write 1GB
51.4 +/- 4.3MB/s
29.7 +/- 2.9MB/s
1.73 +/- 0.22x
Read 1GB
58.9 +/- 4.7MB/s
65.7 +/- 18.9MB/s
0.90 +/- 0.27x
Time to 1st byte
0.0169 +/- 0.0023s
0.98 +/- 0.06s
58.3 +/- 8.7x