ゴミ箱の中のメモ帳

まだ見ぬ息子たちへ綴る手記

さくらのクラウドとVPSのベンチマーク比較

現在いくつかのWebサイトをホストするためにさくらインターネットのVPSを契約しているのだが、今後はスケールが必要になるくらいのサービスを展開したいと妄想しているのでさくらのクラウドに移行を考えている。ただし、VPSとクラウドでは同等の数値スペックにすると価格差が5倍以上開いてしまう。クラウドは非常に高価格になるがディスクIOが早いなど宣伝している部分があるので簡単なベンチマークで比較してみた。

VPSもクラウドも双方ともに他ユーザの利用度合いにも影響するためベンチマークを動かすたびに結果が違うかとは思うので参考程度にしてください。






価格比較

まずは価格比較。

比較はVPSとクラウドの契約上の数値を合わせるものとする。実際には同一スペックに合わせるプランがないため近似値とし、クラウドをより上位にする。比較VPSプランは現在契約しているVPS 2G。

VPS クラウド
CPU 3コア 3コア
メモリ 2GB 3GB
HDD 200GB 250GB
月額料金 1,480円 11,182円

やはり価格が8倍程になる(クラウドは追加ディスクで計算)。VPSの8Gプランでも5倍ほど差がある。

性能比較

性能比較はベンチマークとしてPhoronix Test Suite 4.6.1-Utsira (6 June 2013)を利用しようと思ったのだが、テストのダウンロードに失敗してうまく動かなかったので、各種性能比較別にUnixBenchSTREAM、hdparm、FTPダウンロードでの値を比較する。

比較対象は現在契約しているVPS 2Gとさくらのクラウドの最下位のプラン(1コア 1GB SSD20GB)とする。VPSとクラウドで環境が違うが、価格をベースとして一番近似価格のプランでどのくらいの差が出るかという比較とする。価格を無視してスペック値を合わせるとどうしてもクラウドが有利になってしまう(と思う)。

実ハードウェアとの比較対象として、手元のNEC Express 5800/S70を記載している。標準ハードからメモリの追加とHDDをSSDにだけ変更している。ただし、実働させているマシンであるためベンチマークを行いつつも別の作業を行なっているのであまり参考にはならないかもしれない。

VPS クラウド ローカル
CPU 3コア 1コア 2コア(Pentium G6950 2.8GHz)
Mem 2GB 1GB 8GB(DDR3-1333)
HDD 200GB 20GB SSD 60GB SSD
OS CentOS 6.4(64bit) CentOS 6.4(64bit) UbuntuLinux 12.04(32bit)

CPU

ベンチマークとしてUnixBenchを利用する。並列1のテスト結果を比較する。

テストは以下のように行った。

# yum install perl perl-Time-HiRes make gcc
# curl http://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz | tar zx
# cd UnixBench
# make
# ./Run
結果
VPS クラウド ローカル
Dhrystone 2 using register variables 21260045.1 lps 29002957.7 lps 18096883.3 lps
Double-Precision Whetstone 2759.1 MWIPS 3577.2 MWIPS 3096.6 MWIPS
Execl Throughput 1348.3 lps 4763.1 lps 1938.2 lps
File Copy 1024 bufsize 2000 maxblocks 520085.4 KBps 932748.5 KBps 612605.2 KBps
File Copy 256 bufsize 500 maxblocks 150368.6 KBps 259922.1 KBps 197251.3 KBps
File Copy 4096 bufsize 8000 maxblocks 1140410.9 KBps 1665761.4 KBps 1450945.9 KBps
Pipe Throughput 1241266.7 lps 1938401.1 lps 1120327.8 lps
Pipe-based Context Switching 10765.8 lps 330536.2 lps 82678.4 lps
Process Creation 2986.0 lps 14480.6 lps 7721.1 lps
Shell Scripts (1 concurrent) 2553.3 lpm 5695.2 lpm 4544.2 lpm
Shell Scripts (8 concurrent) 779.0 lpm 761.9 lpm 1356.1 lpm
System Call Overhead 1585628.4 lps 2221977.5 lps 3015594.6 lps
System Benchmarks Index Score 624.8 1426.7 1000.7

数値が大きくて読みづらいため、VPSを1とした各値の比率。

VPS クラウド ローカル
Dhrystone 2 using register variables 1 1.36 0.85
Double-Precision Whetstone 1 1.30 1.12
Execl Throughput 1 3.53 1.44
File Copy 1024 bufsize 2000 maxblocks 1 1.79 1.18
File Copy 256 bufsize 500 maxblocks 1 1.73 1.31
File Copy 4096 bufsize 8000 maxblocks 1 1.46 1.27
Pipe Throughput 1 1.56 0.90
Pipe-based Context Switching 1 30.70 7.68
Process Creation 1 4.85 2.59
Shell Scripts (1 concurrent) 1 2.23 1.78
Shell Scripts (8 concurrent) 1 0.98 1.74
System Call Overhead 1 1.40 1.90
System Benchmarks Index Score 1 2.28 1.60

VPSはクラウドに比べて全体的にかなり劣る値になってしまっている。クラウドは実ハードウェアに比べてもかなり優秀な値を出しているので、実ハードウェアで考えるとコア当たりはIntel Core i3程度の性能があると考えていいのかもしれない。

計算が主になる用途ではスケールも行えるクラウドがかなり有利になる(但し非常に高価)。

Memory

ベンチマークとしてSTREAMを利用する。コンパイルオプションはデフォルトからいじらない。

テストは以下のように行った。

# mkdir stream
# cd stream
# wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c
# gcc -O stream.c -o stream
# ./stream
Best Rate (MB/s)
VPS クラウド ローカル
Copy 4956.0 6233.5 6777.7
Scale 4402.6 6036.4 6661.4
Add 4891.6 6624.0 7470.1
Triad 4822.3 6652.6 7489.4

VPSを1とした値の比率。

VPS クラウド ローカル
Copy 1 1.26 1.37
Scale 1 1.37 1.51
Add 1 1.35 1.53
Triad 1 1.38 1.55
Avg time
VPS クラウド ローカル
Copy 0.035889 0.025987 0.024133
Scale 0.039197 0.026850 0.024780
Add 0.053892 0.037044 0.033162
Triad 0.055277 0.038655 0.033133

VPSを1とした値の比率。

VPS クラウド ローカル
Copy 1 0.72 0.67
Scale 1 0.69 0.63
Add 1 0.69 0.62
Triad 1 0.70 0.60


メモリもCPUと同じくVPSと比べてクラウドが優秀な成績を収めている。メモリはやはり仮想環境ではネックになるようで、実ハードウェアに比べると劣る様子。

VPSはメモリが8GBまでのプランしか用意されていないため、メモリを大量に使う用途でもクラウドが有利になる(但し非常に高価)。

HDD

ベンチマークとしてhdparmを利用して、Read/Writeの速度を計測する。比較のためのコードはHesonogomaTipsより拝借し、テスト回数を12回から6回に変更している。

# # Read:
# for i in [1] [2] [3] [4] [5] [6];do sleep 10;echo $'\n\n' $i;hdparm -t /dev/vda3;done
# # Write:
# for i in [1] [2] [3] [4] [5] [6];do sleep 10;echo $'\n\n' $i;date;time dd if=/dev/zero of=/tmp/hdparm_write$i.tmp ibs=1M obs=1M count=1024;date;done
Read (MB/sec)
VPS クラウド ローカル
1回目 55.58 150.22 182.18
2回目 87.04 150.26 188.55
3回目 240.27 150.06 188.47
4回目 43.84 150.23 194.89
5回目 251.52 150.18 189.38
6回目 210.92 150.17 192.09
平均値 148.195 150.186 189.26
Write (1GBのファイルの作成時間)
VPS クラウド ローカル
1回目 0m4.097s 0m6.524s 0m4.371s
2回目 0m2.870s 0m5.820s 0m4.360s
3回目 0m2.073s 0m5.733s 0m4.312s
4回目 0m2.012s 0m5.827s 0m4.333s
5回目 0m1.967s 0m5.822s 0m4.357s
6回目 0m2.156s 0m5.927s 0m4.509s
平均値 0m2.529s 0m5.942s 0m4.373s

HDDの速度は驚くことにVPSとクラウドでは平均値としてはVPSのほうが優秀な値を出している。読込ではほぼ同等の値で、書込ではVPSがほぼ倍の速度となっている。ただし、VPSは平均値としてはクラウドと同等になっているが、読込がかなり不安定な値となっている。

平均的にはVPSの方が早いが読込がかなり不安定となっているため、常に平均的な速度を望む環境には向かないかもしれない。ベンチマークを取得したタイミングではクラウドはかなり安定した結果となっている。

Network

ネットワークのベンチマークを取得する方法を知らないため、適当なFTPサーバからwgetにてアーカイブを取得する速度を計測した。ベンチマークの取得方法を公開するとFTPサーバに負荷がかかるため、取得サーバは公開しない。また、テストも2回と回数を少なくしている。

サーバのアップロード速度で頭打ちになる可能性もあるが、それはどうすることもできないため気にしないものとする。また、ローカルはプロバイダとの契約が1Mbps契約のため測定不能とする。

Download (MB/s)
VPS クラウド ローカル
1回目 18.6 14.7 -
2回目 31.6 19.9 -
平均 25.1 17.3 -

驚くことに双方ともにかなり早い。仮想環境は100Mbpsで接続されているという事を読んだ記憶があるのだが双方その速度を超えている。

結果としてはVPSが良好な値になっているが、双方ともに安定した速度ではないため他のユーザの影響をもろに受けているものかと思う。

比較結果

ベンチマークの結果から概算を出すと以下のようになる。

VPS クラウド
CPU 1 4.24
Memory 1 1.34
HDD 2.31 1
Network 1.45 1

HDDとネットワークはVPSが勝り、CPUとメモリはクラウドが勝っている。気になる点は、HDDに関してはクラウドはSSDを選択しているにも関わらず書き込み速度に顕著な差が出てしまっている。CPUは1コアあたりの性能が4倍以上の差が出てしまっている点はもっと調査が必要になるかもしれない。3コアで並列実行した際のINDEXスコアではVPSは1850となり1.3倍ほどの性能になったが、クラウドはVPSに比べて新しいサービスになるため設置ハードが影響してコアあたりの性能に差が出ているのかもしれない。


以上から、VPSからクラウドに移行するとしても対価格の性能的には問題ないことはわかった。だが、クラウドはディスク容量がネックになるため、大容量のディスクが必要な場合はVPSと併用することも考えたほうがいいかもしれない。クラウドは250GBのディスクを追加すると月額8,000円近くかかる。これは非常に高価になる。

さくらインターネットのVPSとクラウドの性能差については記載のあるページを見つけることが出来なかった為、知識がないながらも以上のようなベンチマークを取得してみた。突っ込みどころも満載かと思いますが、突っ込みどころがあれば是非ともコメントをお願いします。VPSとクラウドの性能差がこれほど顕著に出る理由をお分かりの方がいればそちらもコメント頂ければ嬉しいです。