Wagbyのビルドに掛かる時間をいろんなスペックのマシンで比べてみた

f:id:cycle8b:20170409193615j:plain今回は、Wagbyのビルドに掛かる時間を、いろいろなスペックのマシンで比較してみたいと思います。

計測方法

  • Wagbyのバージョン: R7.11.0
  • ビルド対象のモデル: Wagbyのインストール後、1コのモデルを新規作成した状態
    • モデル数: 1
    • モデル項目数: 6

フルビルドと差分ビルドの時間をそれぞれ計測しました。差分ビルドを計測するときには、↑の状態から[ダウンロード画面]と[アップロード画面]を追加しています。

計測結果

PC

いつも使ってるPCです。そろそろ新しいのが欲しいです。

  • OS: Windows10 Home 64bit
  • CPU: Core i5-3317U(1.70GHz)
  • メモリ: 8GB
  • SSD: 40GB + HDD 300GB
フルビルド 差分ビルド
4:30 0:34

WagbyはSSDにインストールしましたが、やはりフルビルドには、それなりに時間がかかっています。

AWS EC2

他にPCを持っていないので、AWS EC2を使って計測します。WindowsだとChoromeとかJavaのインストールなんかがとても面倒なので、Linux(Amazon Linux)のインスタンスを使いました。なお、推奨環境に明記はありませんが、多分、仮想環境は開発用マシンとしてサポートされていないと思うのでご注意ください。

wagby.com

以前のWagbyのバージョンでは簡単にAWSにセットアップできたのですが、今回はちょっとだけ苦戦したので、別の記事に詳しい手順を書こうと思います。

t2.micro

無償利用枠でも使えるおなじみのインスタンスタイプですが、Wagbyの推奨スペックを大きく下回っています。

  • OS: Amazon Linux(64bit)
  • vCPU: 1
  • メモリ: 1GB
フルビルド 差分ビルド
(計測を中断) (計測を中断)

20分たってもビルドが終わらなかったので、途中でやめてしました。予想通りでしたが、低スペックなマシンをWagbyでの開発に使うのはやめておいたほうが良さそうです。

t2.midium

t2.microではさすがに低スペックすぎたので、推奨スペックのひとつである"メモリ4GB"を満たすインスタンスで試してみます。

  • OS: Amazon Linux(64bit)
  • vCPU: 2
  • メモリ: 4GB
フルビルド 差分ビルド
 1:25 0:20

あっさり私のPCよりも遥かに良い結果に。CPUの差が大きいのでしょうか。

blog.animereview.jp

t2.large

[t2.medium]の倍のメモリがある[t2.large]でも試してみます。

  • OS: Amazon Linux(64bit)
  • vCPU: 2
  • メモリ: 8GB
フルビルド 差分ビルド
 1:23 0:20

メモリが8GBになってもほとんど変化はありませんでした。今回よりも多くのモデル&モデル項目数があるアプリケーションをビルドする場合には差が出てくるかもしれませんが、小規模の場合は大差なさそうです。

c3.xlarge

メモリは効き目が少なそうなので、CPUを増やしてみます。

  • OS: Amazon Linux(64bit)
  • vCPU: 4
  • メモリ: 7.5GB
フルビルド 差分ビルド
 1:30 0:23

やや遅くなってしまいました。vmstatで確認してもメモリをフルで使い切ってなさそうでしたので、7.5GBにした影響という訳ではなく、誤差の範囲内といえるかと思います。

c3.2xlarge(プロビジョンド IOPS SSD)

最後に、一気にCPUもメモリも倍にしてみます。ついでにWagby Designerが使うメモリの上限も倍にします。

wagby.com

` set CATALINA_OPTS=-server -Xmx8192m -Xms8192m

  • OS: Amazon Linux(64bit)
  • vCPU: 8
  • メモリ: 15GB
フルビルド 差分ビルド
 1:25 0:19

これも、大差ありませんでした。

比較

計測結果を一覧で比較してみます。

OS メモリ cpu/vcpu フルビルド 差分ビルド
PC Windows10 Home(64bit) 8.0GB Core i5-3317U 4:30 0:34
t2.micro Amazon Linux(64bit) 1.0GB 1 (計測中断) (計測中断)
t2.midium Amazon Linux(64bit) 4.0GB 2 1:25 0:20
t2.large Amazon Linux(64bit) 8.0GB 2 1:23 0:20
c3.xlarge Amazon Linux(64bit) 7.5GB 4 1:30 0:23
c3.2xlarge Amazon Linux(64bit) 15.0GB 8 1:25 0:19

こうしてみると、[t2.midium]以上にしてもビルド時間には影響がないようです。今回は1モデル・6項目と規模が非常に小さかったですが、モデル数・項目数が増えた場合は、[t2.large]以上のインスタンスでもビルドの時間に差が出てくるかと思います。

トライアルキットで試しているので、大量のモデル・項目数での実験はできませんが、このブログのように小規模なモデルを作って遊ぶ程度なら、メモリは4GBでも十分・・・ただしCPUは第三世代モバイル用CPUよりもっと良いものを使ったほうがサクサク遊べそうだ ということがわかります。

PassMark - Intel Core i5-3317U @ 1.70GHz - Price performance comparison