EC2の新インスタンスタイプ”C4″をベンチマークしてみた

Amazon EC2

ウィスキー、シガー、パイプをこよなく愛する大栗です。
re:Invent 2014でアナウンスされていた新しいEC2のインスタンスタイプ"C4"を使用できるようになりました。C3に比べて、どの程度早くなったのか計測してみました。

 

C4自体の説明はせーのがAmazon EC2の新インスタンス「C4ファミリー」を触ってみたという記事を書いておりますので、こちらを参照下さい。

ベンチマーク1

インスタンス全体のパフォーマンスを計速します。

計測環境

計測ツールはいつも通りにUnixBenchを使用します。
計測内容は以下の通りです。

  • UnixBench 5.1.3
  • EC2インスタンス:c3.large(2並列)、c4.large(2並列)、c3.xlarge(4並列)、c4.xlarge(4並列)
  • EBS:gp2 1000GB
  • 使用リージョン:東京(ap-northeast-1)
  • 使用AMI:Amazon Linux AMI 2014.09.1 (HVM) - ami-4985b048

計測結果

以下が計測結果になります。なお、UnixBenchは複数回計測した結果の平均を出力するため、UnixBench自体の計測回数は1回です。

vCPUs:2
(2並列)
vCPUs: 4
(4並列)
c3.large c4.large c4/c3 c3.xlarge c4.xlarge c4/c3
Dhrystone 2 using register variables (整数演算) 3443.1 3789.8 110.1% 6869.1 7591.0 110.5%
Double-Precision Whetstone
(浮動小数点)
1332.0 1458.3 109.5% 2663.7 2923.9 109.8%
Execl Throughput
(システムコール)
1392.0 1664.7 146.6% 2849.9 3267.4 114.6%
File Copy 1024 bufsize 2000 maxblocks (ディスクI/O) 2417.3 3544.7 146.6% 2275.4 2623.1 115.3%
File Copy 256 bufsize 500 maxblocks (ディスクI/O) 1618.3 2251.9 139.2% 1425.0 1691.9 118.7%
File Copy 4096 bufsize 8000 maxblocks (ディスクI/O) 5561.5 7237.6 130.1% 4833.9 3829.0 79.2%
Pipe Throughput
(パイプ)
1605.6 1896.8 118.1% 3323.2 3829.0 115.2%
Pipe-based Context Switching
(パイプ)
971.4 1168.8 120.3% 1910.3 2124.8 111.2%
Process Creation
(プロセスフォーク)
1616.2 1912.4 118.3% 2970.1 3490.0 117.5%
Shell Scripts (1 concurrent)
(シェルのテキスト処理:1並列)
2021.5 2339.8 115.7% 3944.7 4471.4 113.4%
Shell Scripts (8 concurrent)
(シェルのテキスト処理:8並列)
1950.1 2271.2 116.5% 3897.8 4445.5 114.1%
System Call Overhead
(システムコール)
1939.7 2415.6 124.5% 3645.6 4000.4 109.7%
System Benchmarks Index Score (総合スコア) 1930.4 2353.9 121.9% 3123.9 3569.8 114.3%

ベンチマーク2

C4インスタンスは標準でEBS最適化が有効になっているので、ディスクI/Oのパフォーマンスも計測します。
なお、C4インスタンスにはInstance Storeがありません。そのためC3、C4共にEBSで計測しました。

計測環境

ディスクI/Oの計測ツールはfioを使用します。
計測内容は以下の通りです。

  • fio 2.1.5
  • EC2インスタンス:c3.large、c4.large、c3.xlarge、c4.xlarge
  • EBS:gp2 1000GB
  • 使用リージョン:東京(ap-northeast-1)
  • 使用AMI:Amazon Linux AMI 2014.09.1 (HVM) - ami-4985b048

計速コマンド

計測は、シーケンシャルリード、シーケンシャルライト、ランダムリード、ランダムライトの4種類で行い、12GBのサイズを64並列で実行させます。

シーケンシャルリード

fio -filename=/home/ec2-user/fio/testfio.file -direct=1 -rw=read -bs=16k -size=12G -group_reporting -name=seqread -numjobs=64 -runtime=60

シーケンシャルライト

fio -filename=/home/ec2-user/fio/testfio.file -direct=1 -rw=write -bs=16k -size=12G -group_reporting -name=seqwrite -numjobs=64 -runtime=60

ランダムリード

fio -filename=/home/ec2-user/fio/testfio.file -direct=1 -rw=randread -bs=16k -size=12G -group_reporting -name=randread -numjobs=64 -runtime=60

ランダムライト

fio -filename=/home/ec2-user/fio/testfio.file -direct=1 -rw=randwrite -bs=16k -size=12G -group_reporting -name=randwrite -numjobs=64 -runtime=60

計測結果

以下が計測結果になります。

iops

sequential read sequential write randam read randam write
c3.large 3795 804 3064 950
c4.large 3799 1356 3064 1369
c3.xlarge 3859 1577 3065 1561
c4.xlarge 996 1626 614 1617

c4-iops

bandwidth

sequential read sequential write randam read randam write
c3.large 60735 12873 49036 15207
c4.large 60799 21708 49036 21915
c3.xlarge 61759 25242 49040 24985
c4.xlarge 15937 26019 26019 25887

c4-bandwidth

まとめ

C4はC3と比較するとカタログ上はECU比が8:7で価格比もほぼ同じ(c4.8xlargeを除く)です。CPUのみの価格性能比はC3とC4で変わらないようです。そのため、ディスクの使い方と「AVX2」命令の有無で使い分けをした方が良いと思われます。
ディスクは、C3にInstance Storeが有りC4にはありません。また、C4の場合はEBS最適化が標準で有効になっているためEBSへのアクセス速度が速くなっています(なぜかc4.xlargeのReadの計測値が低かったですが)。swapへのアクセスが多い場合にはC3、通常のディスクI/Oが多い場合はC4の方が良いと思われます。
また、「AVX2」命令に最適化できるアプリケーションである場合はC4を使用するべきでしょう。

さいごに

 C3とC4を比較してみましたが、双方とも現行世代のため極端な差になりませんでした。ディスクの用途で使い分けをした方が良いと思われるので、動かすアプリケーションのワークロードに合うか確認しましょう。
なお、C4は仮想化タイプがHVMのみ対応しています。Paravirtualで作成したAMIを使用できないのでご注意下さい。

 

コメントは停止中です。