みなさんこんにちわ。
世間でIaaSといえば、もっぱらAmazon AWS EC2とういうような状況ですが、GoogleにもGoogle Compute EngineというIaaSがあるのをご存じでしょうか?
Googleといえば、24時間365日、世界中から届く大量の検索リクエストを圧倒的スピードでさばくサーバを運用・管理している会社であり、その技術力はだれもが認めるところ。
そんなGoogleが満を持して発表したIaaSであるGCEと、現IaaS界筆頭のAmazon EC2とで性能に差があるのか。
今回はDisk I/Oについてそれぞれを計測してみました!
測定方法
・GCEおよびAmazon EC2でそれぞれVMインスタンスを作成。
・GCEのOSはdebian-7-wheezy-v20131120、EC2はAmazon Linux。
・測定ツールはbonnie++。
・インスタンスタイプごとの差を見るために、いくつかのインスタンスタイプで計測。
・バッファキャッシュの誤差を防ぐため、メモリ*2の一時ファイルを作る設定(デフォルト設定)で計測。
・ラベルに-dがついているものは、GCEのスクラッチディスク、-ephemeralがついているものはEC2のエフェメラルディスク。
・ラベルに-IOPS****がついているものは、EC2でIOPS指定のディスクをつけたもの。
マシンタイプ
Google Compute Engine
name | CPU | memory |
---|---|---|
G-f1-micro | 1 | 0.6 |
G-n1-standard-1 | 1 | 3.8 |
G-n1-standard-2-d | 2 | 7.5 |
G-n1-standard-4 | 4 | 15 |
Amazon EC2
name | CPU(ECU) | memory |
---|---|---|
A-t1.micro | 1(up to 2) | 0.613 |
A-m1.medium | 1(2) | 3.7 |
A-m1.xlarge | 4(8) | 15 |
Sequential Write
まずは、書き込み性能です。
それぞれのグラフは、
Sequential Write(Per Chr) ・・・ キャラクタ単位での書き込み速度。K/sec
Sequential Write(Block) ・・・ ブロック単位での書き込み速度。 K/sec
Sequential Write(Rewrite) ・・・ 上書き速度。 K/sec
を表します。
Sequential Read
次に、読み込み性能です。
それぞれのグラフは、
Sequential Read(Per Chr) ・・・ キャラクタ単位での読み込み速度。K/sec
Sequential Read(Block) ・・・ ブロック単位での読み込み速度。 K/sec
を表します。
Random
次に、シーク性能です。
lseek()にランダムな値を設定した時の速度になります。
単位は/secになります。
Sequential Create
次に、ファイルの操作速度です。
決められた名前のファイルを作成し、順番に処理を行ったときの速度を計測します。
それぞれのグラフは、
Sequential Create(Create) ・・・ ファイル作成の速度。/sec
Sequential Create(Read) ・・・ ファイルの読み込み速度。 /sec
Sequential Create(Delete) ・・・ ファイル削除の速度。 /sec
を表します。
Random Create
ランダムにファイル操作をした際の速度を計測します。
それぞれのグラフは、
Random Create(Create) ・・・ ファイル作成の速度。/sec
Random Input(Read) ・・・ ファイルの読み込み速度。 /sec
Random Input(Delete) ・・・ ファイル削除の速度。 /sec
まとめ
書き込み性能
Per Chr ・・・ GCEがEC2と比べると4~5倍の速度。
Block ・・・ GCEがEC2と比べると、タイプによって差がありますが、3~4倍の速度が出ていることが分かります。
Rewrite ・・・ 揮発性ディスクの勝ち!データの上書きについてはGCEのScratch DiskやEC2のEphemeral Diskが圧倒的に速いようです。そして、GCEの無料インスタンスである、f1-microはかなり遅い結果です。
書き込み性能は上書きを除けばGCEに軍配という感じでしょうか。
ただし、キャラクター単位での書き込みは、「遅い」という意味ではどっちもどっちというところです。
読み込み性能
Per Chr ・・・ GCEの勝ち!EC2の2~4倍の速度が出ています。
Block ・・・ 永続ディスクの場合はEC2の勝ち!ただし、揮発性ディスクであればGCEの勝ち。
シーク性能
EC2の低スペック2タイプが飛びぬけて性能が高いです。
シーケンシャルなファイル操作性能
Create ・・・ GCEがEC2の約2.5倍の速度。ただし、GCEの最小構成であるmicroではかなり遅いという結果に。
Read ・・・ GCEがEC2の約3倍以上の速度。これも、GCEの最小構成であるmicroではかなり遅いという結果。
Delete ・・・ EC2がGCEをやや上回る結果。IOPS指定がズバ抜ける。
ランダムなファイル操作性能
Create ・・・ GCEがEC2の約2倍の速度。これまた、GCEの最小構成であるmicroではその他と比べて遅いです。
Read ・・・ GCEがEC2の約3倍以上の速度。GCEの最小構成であるmicroは(以下略
Delete ・・・ EC2がGCEの約2倍の速度。こちらはIOPSがあまり影響していない模様。
と、いうような結果になりました。
より詳細なデータは、添付のエクセルにまとめてありますので、そちらもご覧ください。
全体的にみるとGCEがEC2より性能がよさそうに見えますが、細かな設定や、RAIDの構成によっては、
また結果が変わってくることもあるかと思います。
さらにEC2にはディスクにSSDを使うこともできるようなので、その場合はまた違った結果になるやも・・・。
とはいえ、さすがのGoogle、といったところで期待できそうです!