ディスクI/Oの大きなワークロードにおすすめのEC2インスタンスタイプの紹介
はじめに
こんにちは、G2です。
ナビタイムジャパンで描画地図データの運用とその改善を担当しています。
今回はディスクI/Oの大きなワークロードにおすすめのEC2インスタンスタイプを紹介します。
今回性能比較に使うワークロードについて
性能比較を行うワークロードについて下記の処理を実行しています。
今回比較を行うワークロードはコンバート前のデータが191GB、コンバート後のデータが1.7GBのサイズ感のワークロードです。
S3からコンバート対象のデータを取得(圧縮ファイルの展開処理も合わせて実施)
データのコンバート(java製のコンバートプログラムの実行)
作成した成果物をS3にアップロード
C6idインスタンスについて
C6idインスタンスの特徴としては、C6iにNVMe ベースのソリッドステートドライブ (SSD) ブロックレベルストレージを搭載し、ストレージI/Oの激しいワークロードに適しているインスタンスタイプです。
実際に動かして比較してみた結果
今回は下記の条件で比較をしてみました。
注記データのコンバートのワークロード
C6i.2xlargeとC6id.2xlargeそれぞれで実行して比較
C6i.2xlargeのEBSは250GB gp3としています。
数値はzabbixで取得
(CPU utilization)C6iとC6idのグラフを比べるとC6iのiowait(黄色の部分)がC6idと比べて大きいこと(ストレージのI/Oに時間がかかっている事)が分かります。
(Disk I/O)C6iの方はread,wite合計で500Kspsあたりがピーク、C6idの方はread,witeそれぞれ600Kspsあたりがピークで(利用方法によってはC6idの方が2倍以上I/O性能が良い場合が)あるように読み取れます。
実行時間とコストパフォーマンス
C6iインスタンスの単価は安いが、C6idインスタンスの実行時間がC6iと比べて2/3の実行時間で実行できたため、実行時間でも1回あたりのコスト面でもC6idインスタンスにメリットがある結果となりました。
まとめ
ストレージのI/Oの激しいワークロードの場合は、今回のようにc6iよりc6idの方がコスト的にも実行時間的にもメリットがある場合があります。
時間のかかる重いワークロードを実行しているのであれば、インスタンスタイプを見直すことで改善ができるかもしれません。