サイトをリニューアルいたしました。(6/1)

GCEインスタンスで使える永続ディスク(SSD/HDD)の性能調査

これからパブリッククラウドを利用するにあたり、様々な観点から性能を比較するかと思います。今回はGCEインスタンスで使える永続ディスクで性能比較してみました。
性能比較をするためにベンチマーク測定ツール「fio」を利用しました。記事内で「fio」のインストール方法から実行するコマンドをサンプルとして記載します。細かな条件下での性能が気になる、という方は記事を参考に実施してみてください。

性能比較のディスクについて

性能比較をした際のインスタンスタイプ、ディスクとサイズは下記の通りです。
今回はHDDとSSDの性能を比較するということで同一サイズのディスクで比較してますが、GCPのディスクはサイズの増減によって性能がリニアに変化しますので、ご注意ください。

インスタンスタイプ(OS) n1-standard-4(CentOS7)
種類 サイズ
標準永続ディスク(HDD) 500GB
SSD 永続ディスク 500GB

性能比較の手法について

冒頭でも触れましたが、ベンチマーク測定ツール「fio」を利用し、取得した情報から下記の観点で性能比較を実施しました。

IOPS:1秒間に行なう読み書きの回数のこと。数値が大きい方が良い。
スループット:1秒間に処理できる能力のこと。数値が大きい方が良い。
レイテンシ:データの転送リクエストを出してから、その転送が終了するまでの時間のこと。数値が低い方が良い。

比較条件

ファイルサイズ ブロックサイズ
2GB 4KB
2GB 8KB
2GB 16KB
2GB 32KB
2GB 512KB
2GB 32MB
計測方式 備考
Seq Read 順次読み取り
Seq Write 順次書き込み
Random Read ランダム読み取り
Random Write ランダム読み取り

fio インストール方法

今回、性能比較で使用したOSはCentOS7です。fioのインストールは下記コマンドで行ないました。

コード
$ sudo yum install -y fio

「ifo –version」コマンドを実行し、バージョン情報が出力されればインストール成功です。

コード
$ ifo --version
fio-3.1

fio 実行コマンド

今回、下記の fioコマンドを実行し性能検証をしました。
ファイルサイズは 「-size=」で指定、ブロックサイズは「-bs=」で指定することができます。

コード
# 計測方式 Seq Read 
$ fio -filename=/[任意のファイルパス] -direct=1 -rw=read -bs=4k -size=2G -numjobs=64 -runtime=10 -group_reporting -name=file1

# 計測方式 Seq Write
$ fio -filename=/[任意のファイルパス] -direct=1 -rw=write -bs=4k -size=2G -numjobs=64 -runtime=10 -group_reporting -name=file1

# 計測方式 Random Read
$ fio -filename=/[任意のファイルパス] -direct=1 -rw=randread -bs=4k -size=2G -numjobs=64 -runtime=10 -group_reporting -name=file1

#計測方式 Random Write
$ fio -filename=/[任意のファイルパス] -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=10 -group_reporting -name=file1

性能比較結果について

下記が各計測方式での性能比較結果となります。

ブロックサイズを 4KB とした場合

Seq Read – 4KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 20.1k 82.4MB/s 4 msec
SSD 永続ディスク 17.6k 72.2MB/s 10 msec



Seq Write – 4KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 30.0k 127MB/s 4 msec
SSD 永続ディスク 17.6k 72.1MB/s 10 msec



Random Read – 4KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 770 3154kB/s 100 msec
SSD 永続ディスク 17.5k 71.7MB/s 4 msec



Random Write – 4KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 1541 6315kB/s 50 msec
SSD 永続ディスク 17.6k 72.1MB/s 10 msec



上記結果から、

  • Seq Read/Seq Write の場合、標準永続ディスク(HDD)の方がパフォーマンスが良い
  • Random Read/Random Writeの場合、SSD永続ディスクの方がパフォーマンスが良い

となりました。

ブロックサイズを 8KB とした場合

Seq Read – 8KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 8372 68.6MB/s 10 msec
SSD 永続ディスク 12.3k 101MB/s 10 msec



Seq Write – 8KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 13.7k 112MB/s 10 msec
SSD 永続ディスク 14.9k 122MB/s 4 msec



Random Read – 8KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 751 6157kB/s 100 msec
SSD 永続ディスク 16.7k 136MB/s 4 msec



Random Write – 8KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 1463 11.0MB/s 50 msec
SSD 永続ディスク 17.6k 144MB/s 4 msec



上記結果から、

  • 全ての計測パターンにおいてSSD永続ディスクの方がパフォーマンスが良い

となりました。

ブロックサイズを 16KB とした場合

Seq Read – 16KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 6179 101MB/s 10 msec
SSD 永続ディスク 10.1k 165MB/s 10 msec



Seq Write – 16KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 6774 111MB/s 10 msec
SSD 永続ディスク 9549 156MB/s 10 msec



Random Read – 16KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 716 11.7MB/s 100 msec
SSD 永続ディスク 13.2k 217MB/s 10 msec



Random Write – 16KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 1340 21.0MB/s 50 msec
SSD 永続ディスク 15.4k 253MB/s 10 msec



上記結果から、

  • ブロックサイズ8KBと同様に全ての計測パターンにおいてSSD永続ディスクの方がパフォーマンスが良い

となりました。

ブロックサイズを 32KB とした場合

Seq Read – 32KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 3893 128MB/s 20 msec
SSD 永続ディスク 7742 254MB/s 10 msec



Seq Write – 32KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 3867 127MB/s 20 msec
SSD 永続ディスク 7708 253MB/s 10 msec



Random Read – 32KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 657 21.6MB/s 100 msec
SSD 永続ディスク 7733 253MB/s 10 msec



Random Write – 32KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 1145 37.5MB/s 100 msec
SSD 永続ディスク 7728 253MB/s 10 msec



上記結果から、

  • ブロックサイズ8KB/16KBと同様に全ての計測パターンにおいてSSD永続ディスクの方がパフォーマンスが良い

となりました。

ブロックサイズを 512KB とした場合

Seq Read – 512KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 242 127MB/s 500 msec
SSD 永続ディスク 483 253MB/s 250 msec



Seq Write – 512KB IOPS スループット レイテンシ
標準永続ディスク(HDD) 242 127MB/s 250 msec
SSD 永続ディスク 483 253MB/s 250 msec



Random Read – 512K IOPS スループット レイテンシ
標準永続ディスク(HDD) 186 97.6MB/s 500 msec
SSD 永続ディスク 483 254MB/s 250 msec



Random Write – 512K IOPS スループット レイテンシ
標準永続ディスク(HDD) 207 109MB/s 500 msec
SSD 永続ディスク 483 254MB/s 250 msec



上記結果から、

  • 全ての計測パターンにおいてSSD永続ディスクの方がパフォーマンスが良い
  • SSDでは面白いことにSeqWrite以外は全部同じ数字になりました

となりました。

ブロックサイズを512KB以上に指定していくと、

  • IOPSの値が小さく
  • スループットの値が小さく
  • レイテンシの値が大きなる

という傾向となりました。

下記が参考までにブロックサイズを 32MB とした場合の計測結果です。

ブロックサイズを 32MB とした場合

SeqRead – 32MB IOPS スループット レイテンシ
標準永続ディスク(HDD) 3 124MB/s >= 2000 msec ※ 1
SSD 永続ディスク 7 253MB/s >= 2000 msec



SeqWrite – 32MB IOPS スループット レイテンシ
標準永続ディスク(HDD) 3 129MB/s >= 2000 msec
SSD 永続ディスク 7 255MB/s >= 2000 msec

Random Read – 32MB IOPS スループット レイテンシ
標準永続ディスク(HDD) 3 121MB/s >= 2000 msec
SSD 永続ディスク 7 253MB/s >= 2000 msec



Random write – 32MB IOPS スループット レイテンシ
標準永続ディスク(HDD) 3 119MB/s >= 2000 msec ※1
SSD 永続ディスク 7 258MB/s >= 2000 msec ※1



上記の結果から、

  • シーケンシャルとランダムの両方で、SSD永続ディスクの方がパフォーマンスが良い
  • SeqRead / Random Readの場合、標準永続ディスク(HDD)とSSD永続ディスクでIOPSとスループット約2倍の性能差あり
    ※ 1…今回した計測ツールのfioでは2000 msec(2秒)を超えるレイテンシは[>= 2000 msec]としてまとめられる。

という結果になりました。

まとめ

今回は冒頭でも触れた条件下で ベンチマーク測定ツール「fio」 を使い、性能比較を実施しました。

今回の比較条件

インスタンスタイプ n1-standard-4
ファイルサイズ ブロックサイズ 検証結果
2GB 4KB ブロックサイズを 4KB とした場合
2GB 8KB ブロックサイズを 8KB とした場合
2GB 16KB ブロックサイズを 16KB とした場合
2GB 32KB ブロックサイズを 32KB とした場合
2GB 512KB ブロックサイズを512KB とした場合
2GB 32MB ブロックサイズを 32MB とした場合

最後に各計測方式(Seq Read/Seq Write/Random Read/Random Write)ごとの性能推移をまとめました。
※グラフ作成の都合上、ブロックサイズ4KB~32KBの性能推移となります。

ブロックサイズ4KBのシーケンシャル性能(Seq Read/Seq Write)において、一部(4KBのケースのみ)HDDの方が性能優位のあるケースがありましたが、それ以外のケースにおいては全てSDDに性能優位があるという結果になりました。以下、各グラフを参照ください。

システムの要件に応じて、ファイルサイズやブロックサイズを変更し実施することでまた違った結果が出てくるかもしれません。
細かな条件下での性能が気になる、という方は本記事を参考に実施してみてください。
また、今回はディスクのサイズをそれぞれ500GBで試しましたが、SSD、HDDともにディスクサイズを上げることでIOPS、スループットともに向上しますので、より高いIO性能が必要な場合にはサイズを増やしてみてください。

今後もapps-gcpではGCPにおける性能調査を行って参ります。

※ 弊社ではクラウドエース(Cloud Ace)というGCPの導入・運用支援サービスを提供しておりますので、ご興味のある方はこちらまでお問い合わせください。あらゆるGCPサービスのサポートが可能です。

次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます