このブログはURLが変更になりました

新しいブログはこちら→ https://matsuu.hatenablog.com/

金に物を言わせてISUCONのプログラムをc3.8xlargeで動かしてみた

先日AWSから新しいEC2インスタンスタイプc3.8xlargeが発表されましたね。
【AWS発表】 新世代の数値計算向けEC2インスタンス

2013年11月時点の性能と価格は以下のとおり。ISUCON予選で使用したm3.xlargeと比較。

インスタンスタイプ vCPU ECU Memory(GiB) Tokyoリージョンの1時間あたりのオンデマンド価格
m3.xlarge 4 13 15 0.684ドル
c3.8xlarge 32 108 60 3.064ドル

CPU性能約8倍、メモリ4倍。価格約4.5倍。c3.8xlargeお得。

さて、オンデマンドの価格は上のとおりですが、開始後すぐのためか需要が少なくスポットインスタンスが激安なんですね。

先ほど確認したところ、まだ0.005ドルだったのを確認。

ちなみにm3.xlargeは0.148ドル。

0.005ドルは安い!これは今試しておかないと損!そこでISUCONのプログラムをm3.xlargeとc3.8xlargeで試してみました。

本選プログラム

公式のAMIと構築手順を元に構築。ベンチマークコマンドは以下の通り。

$ carton exec perl bench.pl -d /home/isucon/image_source http://127.0.0.1/

プログラムには一切手を加えてません。

m3.xlarge
starting benchmark: concurrency: 6, time: 60
done benchmark: score 2139.77336684146, elapsed 60.681 sec = 35.263 / sec

スコアは2139.8。うんまぁそんなもん。

c3.8xlarge
starting benchmark: concurrency: 6, time: 60
done benchmark: score 3703.04509395234, elapsed 62.458 sec = 59.289 / sec

スコアは3703.0。うーむ、もっと爆速になるかと思いきや、そうでもなかった。
おそらくストレージ(EBS)にファイルを生成する部分がボトルネックになっているのではないかと思われます。

予選プログラム

予選プログラムについても同様に試してみました。公式AMIを使い、プログラムには一切手を加えてない。

# isucon3 benchmark
m3.xlarge
Result:   SUCCESS 
RawScore: 1162.8
Fails:    0
Score:    1162.8

1162.8。うん、そんなもんでしたね。

c3.8xlarge
Result:   SUCCESS 
RawScore: 836.6
Fails:    0
Score:    836.6

836.6。えっ。
何度かやってみたがほぼ同じ。成績下がった。なんでやねん。
おそらくCPUの並列性が上がったせいでMySQLで詰まった感じでしょうか。ちゃんと検証してません。

まとめ

対象 m3.xlarge c3.8xlarge
本選プログラム 2139.8 3703.0
予選プログラム 1162.8 836.6
  • 金に物を言わせてスケールアップすれば万事okってわけではない
  • ちゃんとボトルネックを把握するの大事
  • ちょっとした実験ならスポットインスタンスがオススメ