基于 S3 的 Filey 系统:Goofys
jopen
9年前
Goofys 是使用 Go 编写,基于 S3 接口的 Filey 系统。
Goofys 允许你挂载一个 s3 bucket 作为一个 Filey 系统。为什么是 Filey 系统而不是 File 系统?因为 goofys 优先考虑性能而不是 POSIX。
使用:
$ 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>
基准测试:
使用 goofys--stat-cache-ttl 0 --type-cache-ttl 0和 s3fs -ostat_cache_expire=1模拟运行。基准测试详情请看 bench.sh,同时提供 Raw 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 |