クラウドサーバーサービス(IaaS)の性能比較・ディスク編~IOPSの計測~

  • 6
    いいね
  • 0
    コメント

はじめに

 今回は以下のクラウドサーバーを対象にIOPSを計測し、ストレージの性能を比較します。IDCFクラウドについては初期のゾーンであるhenryと最新ゾーンのluxの2種類を計測し、ゾーン間の違いも計測してみます。

*2017/06/05:NIFTYクラウドの結果を追加しました。

計測対象:

  • Amazon Web Services (AWS) (ボリュームタイプ:gp2/SSD)
  • Google Cloud Platform (GCP) (SSD)
  • IDCFクラウド(ゾーン:lux/SSD)
  • IDCFクラウド(ゾーン:henry/HDD)
  • NIFTY Cloud(ゾーン:east-11)
  • NIFTY Cloud(ゾーン:east-14)

1. 前提知識

 ディスクの性能がなぜ大事?IOPSとは?
 (自明な方は読み飛ばして下さい:bow:

1.1 仮想化環境とストレージ性能

  • 仮想化環境ではストレージの性能がネックになりやすい
  • HDDはシーケンシャルI/O、SSDはランダムI/Oが得意
  • 仮想化環境では主にランダムアクセスに対する性能が重要になる(複数の仮想マシンからのアクセスが発生するから)

参考:
 IT機器の進化とHDD性能とのギャップ
 ストレージのいろは|ソフトバンク コマース&サービス
 クラウドを加速させるSSD技術 - @IT

1.2 IOPSとは?

  • ストレージ性能を図る指標
  • ディスクが1秒当たりに処理できるI/Oアクセスの数
  • IOPSが高ければ高いほど,高性能なディスクと言える
  • IOPSはブロックサイズが小さいと大きな値になる傾向がある
  • IOPSは読み込みと書き込みの割合で値が大きく変わる

参考:
 サーバー選択の基礎 - Part4 IOPSを理解する:ITpro
 ストレージのいろは|ソフトバンク コマース&サービス

2. 計測方法

2.1 実施環境

  • 対象サーバ
AWS(EC2) GCP IDCF(HDD) IDCF(SSD) NIFTY NIFTY
ゾーン ap-northeast-1 asia-northeast1-a henry lux east-11 east-14
マシンスペック m4.large (2vCPUメモリ8GB) n1-standard-2 (2vCPUメモリ7.5GB) standard.M8 (2vCPUメモリ8GB) standard.M8 (2vCPUメモリ8GB) large (4vCPU×4GB) e-large (4vCPU×4GB)
OS CentOS 7 CentOS 7 CentOS 7 CentOS 7 CentOS 7 CentOS 7
ディスクサイズ 8GB 10GB 15GB 15GB 30GB 30GB
  • マシンスペックはAWSのm4.largeに合わせてみました。(※NIFTYクラウドはデモ環境なのでスペックが異なっています)
  • ディスクサイズは基本ディスクのサイズです。

2.1 ツール

 ベンチマークツールとしてfioを使用します。

2.1.1 fioのインストール

  • # yum install epel-release
      まず、EPELのリポジトリをインストールします。

  • # yum repolist all epel*   
      追加したリポジトリが有効かどうか確認。   

  • # yum install fio
      fioをインストール。

2.1.2 計測パラメータの設定

 小さめのブロックサイズの方がベストエフォートに近いはずなので、今回はブロックサイズを4KBに設定し、以下のパターンで比較してみます。

  • ランダムリード
  • ランダムライト
  • ランダムリードライト

 パラメータ条件をfioのパラメータ設定ファイルとして準備します。

Rand-Read-4k.fio
[global]
ioengine=libaio
direct=1
ioscheduler=noop
invalidate=1
group_reporting
directory=/home
runtime=60

[Rand-Read-4k]
readwrite=randread
size=4G
bs=4k
iodepth=32
numjobs=1
Rand-Write-4k.fio
[global]
ioengine=libaio
direct=1
ioscheduler=noop
invalidate=1
group_reporting
directory=/home
runtime=60

[Rand-Write-4k]
readwrite=randwrite
size=4G
bs=4k
iodepth=32
numjobs=1
Rand-ReadWrite-4k.fio
[global]
ioengine=libaio
direct=1
ioscheduler=noop
invalidate=1
group_reporting
directory=/home
runtime=60

[Rand-ReadWrite-4k]
readwrite=randrw
size=4G
bs=4k
iodepth=32
numjobs=1

 fioを実行します。
fio -f Rand-Read-4k.fio -filename=/tmp/fio_test -output Rand-Read-4k.result
fio -f Rand-Write-4k.fio -filename=/tmp/fio_test -output Rand-Write-4k.result
fio -f Rand-ReadWrite-4k.fio -filename=/tmp/fio_test -output Rand-ReadWrite-4k.result

3. 計測結果

3.1 ローカルディスクの性能

AWS GCP IDCF(henry) IDCF(lux) NIFTY(east-11) NIFTY(east-14)
Rand-Read-4k 3110 2749 2664 80282 67043 41897
Rand-Write-4k 3110 1814 2540 41347 103127 53603
Rand-ReadWrite-4k 1555 884 1269 27666 36907 11848

※ 2017/05/15の実測値です。
※ NIFTY Cloudは2017/06/02の実測値です。

  • AWSはボリュームタイプをgp2にしたので、3000IOPSがバーストの上限です。これ以上のI/O性能が求められる場合は Provisioned IOPS [PIOPS]を選択するべき、ということですね。
  • IDCFの最新ゾーンであるluxは非常に高いI/O性能を持っていることがわかりました。
  • 同じIDCFでも、古いゾーンであるhenryはluxよりもだいぶディスク性能が劣ることがわかりました。でも、ディスク性能に限って言えばGCPと大差ないようです。
  • NIFTY Cloudの計測結果はスペックが異なっているため一概には言えませんが、かなり高いディスク性能を持っていることが伺えます。

3.2 増設ディスクの性能

■ NIFTY Cloudの増設ディスク
 NIFTY Cloudの増設ディスクには標準ディスク、高速ディスク、フラッシュドライブの3種類があり、高速ディスクはAとBの2系統があります(性能・仕様は同じ)。それぞれのディスクのIOPSも計測してみました。

(条件1) ゾーン:east-11, スペック:large

フラッシュ 高速A 高速B 標準
Rand-Read-4k 76348 34505 59570 53887
Rand-Write-4k 48279 55289 57537 23158
Rand-ReadWrite-4k 27237 20424 23405 17783

(条件2) ゾーン:east-14, スペック:e-large

フラッシュ 高速A 高速B 標準
Rand-Read-4k 27409 67595 36714 53887
Rand-Write-4k 16566 46045 48559 23158
Rand-ReadWrite-4k 9935 58132 12965 17783
  • フラッシュドライブと高速ディスクの性能差はそれほど見受けられません。むしろ条件2の場合のように高速ディスクのほうが早いときもあるようです。
  • 標準ディスクでも思ったより性能は低くありません。