20
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS、GCP、さくらのクラウド でUnixBench CPU性能比較

Last updated at Posted at 2017-01-03

#はじめに
パブリッククラウドを選定する際にはどのような情報を参考にしてますでしょうか?

  • コスト
  • ストレージ
  • CPUコア数
  • ファシリティ
  • API

などの公開された情報を参考にされているのではないでしょうか。

さて、上記のような情報はHPで公開されておりますが、マシンのCPU性能はなかなか判断しにくいと思います。実際どの程度なのでしょうか。
ベンダーごとの実装方法や、CPUのアーキテクチャで変わってくるものなのでしょうか。

実際にAWS、GCP、さくらインターネットの三社のクラウドマシンでベンチマークを取りまして、スコアを参考に比較していきます。筆者のお財布事情から、無料利用枠のあるパブリッククラウドベンダーを選定しております。

この記事の前半では、ベンチマークツールを紹介しまして、OSにダウンロードします。ベンチマークツールが動作するところまで案内します。
後半ではベンチマークツールを使ってCPUの性能を計測します。

また付随して、仮想化を実装する基盤が、AWS=Xenで、GCPとさくら=KVMなので、そのあたりのスコアの違いも見れればいいなと思ってます。

※このベンチマークは2017年1月3日に計測しております。

#ベンチマークツール
UnixBench
Linux/Unix系OSで使われている定番のCPUベンチマークツールです。
標準ではCPUにまつわる12項目のテストを実施します。12項目のテストから総合スコアを計算します。
1コアあたりのスコアと、複数コアでのスコアの両方を計算できます。

テスト項目 内容
Dhrystone 2 using register variables 2つのレジスタを使ってシステム(整数)プログラミングの性能
Double-Precision Whetstone 浮動小数点演算性能
Execl Throughput 関数の呼び出し性能
File Copy 1024 bufsize 2000 maxblocks ファイルのコピー(バッファサイズ1024バイト)
File Copy 256 bufsize 500 maxblocks ファイルのコピー(バッファサイズ256バイト)
File Copy 4096 bufsize 8000 maxblocks ファイルのコピー(バッファサイズ4096バイト)
Pipe Throughput パイプ処理のスループット
Pipe-based Context Switching パイプベースのコンテキストのスイッチング処理
Process Creation プロセス作成
System Call Overhead システムコールでのオーバーヘッド
Shell Scripts (1 concurrent) 1つだけシェルスクリプトの実行
Shell Scripts (8 concurrent) 8つ同時にシェルスクリプトの実行

#環境
Amazon Web Services
OS:Amazon Linux AMI release 2016.09

Google Cloud Platform
OS:CentOS 7.3

さくらのクラウド
OS:CentOS 7.2

#UnixBenchをダウンロード
まずUnixBenchを動かすためのモジュールをインストールします。

# yum install -y wget gcc make perl perl-Time-HiRes patch

次にUnixBenchのパッケージファイルをGoogleからダウンロードして展開します。

# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/byte-unixbench/UnixBench5.1.3.tgz
# tar xvzf UnixBench5.1.3.tgz

UnixBenchのデフォルト設定だと16コア以上のCPUが計測できません。
制限を解放するパッチファイルがGoogleから公開されています。ダウンロードしてパッチを適用します。

# wget http://storage.googleapis.com/google-code-attachments/byte-unixbench/issue-4/comment-1/fix-limitation.patch
# patch Run fix-limitation.patch 

それか「UnixBench/Run」の109行目、112行目、1332行目の3行を変更します。どちらでも大丈夫です。

UnixBench/Run
 109   'system'    => { 'name' => "System Benchmarks", 'maxCopies' => 0 },
 112   'misc'      => { 'name' => "Non-Index Benchmarks", 'maxCopies' => 0 }, 
1332    next if ($maxCopies > 0 && $copies > $maxCopies);

#ベンチマーク実施
AWS、GCP、さくらの3社でマシンを作成し、UnizBenchを実行します。
AWSのみ、シリーズによりマシン性能が異なるそうなので、汎用インスタンスのM4シリーズと、コンピューティング最適化インスタンスのC4シリーズで計測します。

時間短縮のため5回で実施します

# cd UnixBench
# ./Run -i 5 

##Amazon Web Services
###リージョン
東京リージョン
###CPU
Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz (4600.1 bogomips) Hyper-Threading, x86-64
※汎用インスタンスのM4シリーズで計測してます。
###テスト項目ごとのスコア平均:1コア

テスト項目 スコア
2つのレジスタを使ってシステム(整数)プログラミングの性能 2779.7
浮動小数点演算性能 692.8
関数の呼び出し性能 1090.1
ファイルのコピー(バッファサイズ1024バイト) 2991.2
ファイルのコピー(バッファサイズ256バイト) 1929.3
ファイルのコピー(バッファサイズ4096バイト) 6262.8
パイプ処理のスループット 1886.7
パイプベースのコンテキストのスイッチング処理 119.9
プロセス作成 1003.2
システムコールでのオーバーヘッド 2257.8
1つだけシェルスクリプトの実行 1858.1
8つ同時にシェルスクリプトの実行 2087.6

###総合スコア

CPUコア数 1コアのスコア 複数コアのスコア
2core(m4.large) 1518.9 2305.4
4core(m4.xlarge) 1582.0 3449.6
8core(m4.2xlarge) 1658.1 5163.9
16core(m4.4xlarge) 1687.2 7564.4

###CPU
Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz (5800.2 bogomips) Hyper-Threading, x86-64
※コンピューティング最適化インスタンスのC4シリーズで計測してます。
###テスト項目ごとのスコア平均:1コア

テスト項目 スコア
2つのレジスタを使ってシステム(整数)プログラミングの性能 3267.1
浮動小数点演算性能 812.6
関数の呼び出し性能 1189.9
ファイルのコピー(バッファサイズ1024バイト) 3508.8
ファイルのコピー(バッファサイズ256バイト) 2259.1
ファイルのコピー(バッファサイズ4096バイト) 6638.8
パイプ処理のスループット 2208.0
パイプベースのコンテキストのスイッチング処理 127.4
プロセス作成 1020.9
システムコールでのオーバーヘッド 2637.3
1つだけシェルスクリプトの実行 2405.4
8つ同時にシェルスクリプトの実行 4370.3

###総合スコア

CPUコア数 1コアのスコア 複数コアのスコア
2core(c4.large) 1690.9 2572.0
4core(c4.xlarge) 1820.3 3924.7
8core(c4.2xlarge) 1836.5 5852.1
16core(c4.4xlarge) 1941.1 8517.2

##Google Cloud Engine
###リージョン
東京リージョン
###CPU
Intel(R) Xeon(R) CPU @ 2.20GHz (4400.0 bogomips) Hyper-Threading, x86-64

###テスト項目ごとのスコア平均:1コア

テスト項目 スコア
2つのレジスタを使ってシステム(整数)プログラミングの性能 2738.7
浮動小数点演算性能 683.1
関数の呼び出し性能 780.4
ファイルのコピー(バッファサイズ1024バイト) 2265.0
ファイルのコピー(バッファサイズ256バイト) 1549.2
ファイルのコピー(バッファサイズ4096バイト) 3150.0
パイプ処理のスループット 1192.3
パイプベースのコンテキストのスイッチング処理 238.7
プロセス作成 794.8
システムコールでのオーバーヘッド 1698.0
1つだけシェルスクリプトの実行 1247.1
8つ同時にシェルスクリプトの実行 1694.5

###総合スコア

CPUコア数 1コアのスコア 複数コアのスコア
2core 1239.1 1943.2
4core 1445.3 3196.2
8core 1434.1 5113.2
16core 1505.5 7809.0

##さくらのクラウド
###リージョン
東京リージョン
###CPU
Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz (4589.4 bogomips) x86-64
###テスト項目ごとのスコア平均:1コア

テスト項目 スコア
2つのレジスタを使ってシステム(整数)プログラミングの性能 2588.7
浮動小数点演算性能 693.4
関数の呼び出し性能 1081.6
ファイルのコピー(バッファサイズ1024バイト) 2739.0
ファイルのコピー(バッファサイズ256バイト) 1849.3
ファイルのコピー(バッファサイズ4096バイト) 4430.6
パイプ処理のスループット 1497.6
パイプベースのコンテキストのスイッチング処理 912.0
プロセス作成 1317.7
システムコールでのオーバーヘッド 2647.4
1つだけシェルスクリプトの実行 1456.1
8つ同時にシェルスクリプトの実行 1368.2

###総合スコア
|CPUコア数|1コアのスコア|複数コアのスコア|
|:---|:---|:---||
|2core|1652.1|2321.8|
|4core|1338.7|3381|
|8core|1485.7|4691.9|
|16core|1270.6|6446.6|

#UnixBenchスコアまとめ

###テスト項目ごとのスコア平均:1コア

テスト項目 AWS(M4) AWS(C4) GCP さくら
2つのレジスタを使ってシステム(整数)プログラミングの性能 2779.7 3267.1 2738.7 2588.7
浮動小数点演算性能 692.8 812.6 683.1 693.4
関数の呼び出し性能 1090.1 1189.9 780.4 1081.6
ファイルのコピー(バッファサイズ1024バイト) 2991.2 3508.8 2265.0 2739.0
ファイルのコピー(バッファサイズ256バイト) 1929.3 2259.1 1549.2 1849.3
ファイルのコピー(バッファサイズ4096バイト) 6262.8 6638.8 3150.0 4430.6
パイプ処理のスループット 1886.7 2208.0 1192.3 1497.6
パイプベースのコンテキストのスイッチング処理 119.9 127.4 238.7 912.0
プロセス作成 1003.2 1020.9 794.8 1317.7
システムコールでのオーバーヘッド 2257.8 2637.3 1698.0 2647.4
1つだけシェルスクリプトの実行 1858.1 2405.4 1247.1 1456.1
8つ同時にシェルスクリプトの実行 2087.6 4370.3 1694.5 1368.2

###複数コアの総合スコア

CPUコア数 AWS(M4) AWS(C4) GCP さくら
2core 2305.4 2572.0 1943.2 2321.8
4core 3449.6 3924.7 3196.2 3381
8core 5163.9 5852.1 5113.2 4691.9
16core 7564.4 8517.2 7809.0 7446.6

#まとめ

  • 物理的なCPUは、AWSがパフォーマンスの高いものを使用している。
  • レジスタの性能と、浮動演算装置の性能はおおむね横ばい。
  • バッファサイズの大きいファイルのコピーではAWSが優れている。
  • パイプ処理のスループットはAWSが優れているが、コンテキストのスイッチング処理ではさくらが4倍くらいの差をつけていた。
  • プロセスの作成ではさくらが優れている。
  • システムコールでのオーバーヘッドは、KVMを使っているGCPとさくらで差が開いた。
  • シェルスクリプトの実行処理ではAWSが優れている。
  • CPUの総合性能はコンピューティング最適化インスタンス(AWS)が優れている。
  • スコアはコア数に比例するが、等倍ではない。

UnixBenchでスコアをとってきました。CPUの性能ではC4シリーズが優勢でした。
同じ仮想化基盤を使っているのに関わらず、システムコールのオーバーヘッドがGCPとさくらとで差が開いたのが気になりました。昨年、東京にデータセンターが開設されたばかりということで、GCPの開発がまだ進んでいないのか、または、さくらが特別な実装を行っているのではないでしょうか。

お付き合いいただき、ありがとうございました。
この記事がパブリッククラウドの選定の参考になれば幸いです。

20
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?