[GCP] GCS Fuseのベンチマークを取ってみた

お盆時期に北海道に行って、涼しいなーと思ってて、関東に帰ってきたら蒸し暑さで死ぬかと思ったら急に北海道並みに涼しくなって、一体気候はどうなってんだって感じの今日このごろ、皆さんいかがお過ごしでしょうか。

ちなみに東京の夏が昔はどうだったかというのはちょっと前のエントリに書いたんで、興味あったら見てみてください。

「昔の夏はもっと涼しかっただろ!」と思い50年前の日本の気温を調べてみたところ、そのとおりだった件

それはともかく、Google Cloud Platformを使い倒してる今日このごろですが、Google Cloud Storageを使って、ついでにGCS Fuseで普通のファイルシステムのように見えたらいいなーという話が出てきました。
とはいえ、実際のところどこまで普通のファイルシステムのように使えるのかというのが気になり、簡単にベンチマークを取ってみました。

2016.02.02追記:いろいろとテスト方法に問題があったので、改訂版を書きました。改訂版の方を参照してください。

[GCP] GCS Fuseのベンチマークを取ってみた (改訂版)

n1-standard-2のインスタンスでテストしてみました。
OSは用意されているテンプレートで、Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-25-generic x86_64)。
GCS Fuseのインストールは以下のURLの通りに作業。

https://github.com/GoogleCloudPlatform/gcsfuse/blob/master/docs/installing.md

bucketはStandardとDurable Reduced Availabilityの2種類を作成し、それぞれをコマンドラインからマウント。

で、最初、bonnie++を使ってベンチマークを取ろうとしたんですが…。

bonnie++ってディレクトリやファイル作成を大量に行うテストをやるので、いつまで経っても終わらないという事態に。
GCSはどうしてもネットワーク越しであるし、オブジェクトストレージという特性から大量にファイル生成する場合はオーバーヘッドが大きくてダメですね…。
まあ、そういう用途には使わないほうが良いというのがわかったので、それはそれでよしとします。

こちらで元々想定していた使い方は、レンダリング用の素材を読んで、レンダリング結果を書くだけで、そこまで大量のファイル生成を伴わないので、bonnie++でのベンチマークは中止。
単純に容量の大きいファイルを生成した時にどれぐらいの転送速度が出るかだけ調べることにしました。
測定方法は、以下のddコマンドを使用して、1GBのファイルを生成した時の転送速度を記録します。
dd if=/dev/zero of=test.tmp bs=1M count=1024
念のため、10回計測したデータの平均を取りました。

GCS Type転送速度平均値(MB/sec)
Standard28.97
Durable Reduced Availability40.56
Local193.8

やっぱり冗長性の高いStandardは遅いですね。
DRAでもLocalの1/5程度しか出ていませんので、頻繁に読み書きするものには使わないほうが良さそうです。

ただ、普通のファイルシステムのように扱えるのは何かと便利な場合も多いですので、うまい使い方を考えたいところですね。

そんなところで、今回はここまで。


コメント