ブロック ストレージのパフォーマンス

インスタンスで実行するアプリのストレージ オプションを構成する場合、次の作業を行います。

  1. ワークロードを把握する。必要な容量と、アプリに必要なパフォーマンス特性を判別します。
  2. 適切なディスクタイプを決定する。ディスクタイプ間でパフォーマンスを比較します。
  3. ストレージのパフォーマンスを最適化するようにインスタンスとディスクサイズを構成する。ストレージのパフォーマンスに影響する要因をご覧ください。

ワークロード

特定のアプリのパフォーマンス要件は、通常、2 つの異なる I/O パターンに分類されます。

  • 小規模な読み取りと書き込み(1 MB 未満)
  • 大規模な読み取りと書き込み

小規模な読み書きにおける制限因子は、1 秒あたりのランダムな入出力オペレーション回数(IOPS)です。多数の小規模な同時 I/O が関与するワークロードは、IOPS ドリブン ワークロードです。

大規模な読み書きにおける制限因子は、スループットです。ランダムな大規模 I/O または基本的に連続した I/O が関与するワークロードは、スループット ドリブン ワークロードです。

ブロック ストレージのパフォーマンスの比較

インスタンスで使用するブロック ストレージには、複数のタイプを指定できます。タイプごとに、価格、パフォーマンス、耐久性の特性が異なります。

  • 標準永続ディスクは、大規模なデータ処理ワークロードに適したコスト重視のオプションです。
  • SSD 永続ディスクは、エンタープライズ アプリケーションや高パフォーマンス データベースのニーズに適したパフォーマンス重視のオプションです。
  • ローカル SSD では、高いパフォーマンスと低いレイテンシを実現できますが、このディスクには冗長性がなく、特定のインスタンスの存続期間にのみ存在します。

ディスクが 1 つのインスタンスに接続されている場合も、複数のインスタンスで共有されている場合も、IOPS(GB あたり)とスループットの数値は、常に単一ディスク上のデータに関する総計パフォーマンスを示します。複数のインスタンスが同じディスクから読み取りを行う場合、ディスクの総スループットと IOPS 能力はそれらのインスタンス間で共有されることになります。計画を立てるときの参考値として、GB あたりの IOPS とスループット レートには、次の値を使用することをおすすめします。

ゾーン
標準永続ディスク
リージョン
標準永続ディスク
ゾーン
SSD永続ディスク
リージョン
SSD永続ディスク
ローカル SSD(SCSI) ローカル SSD(NVMe)
最大持続 IOPS
読み取り IOPS/GB 0.75 0.75 30 30 266.7 453.3
書き込み IOPS/GB 1.5 1.5 30 30 186.7 240
読み取り IOPS/インスタンス 7,500* 3,000* 15,000~100,000* 15,000~100,000* 400,000 680,000
書き込み IOPS/インスタンス 15,000* 15,000* 15,000~30,000* 15,000~30,000* 280,000 360,000
最大持続スループット(MB/秒)
読み取りスループット/GB 0.12 0.12 0.48 0.48 1.04 1.77
書き込みスループット/GB 0.12 0.12 0.48 0.48 0.73 0.94
インスタンスごとの読み取りスループット 240~1,200* 240* 240~1,200* 240~1,200* 1,560 2,650
インスタンスごとの書き込みスループット 76~400** 38~200** 76~800* 38~400* 1,090 1,400

* 永続ディスク IOPS およびスループットのパフォーマンスは、インスタンスの vCPU の数と I/O ブロックサイズによって異なります。詳細については、インスタンスの vCPU 数とボリューム サイズをご覧ください。

永続ディスクと物理ハードドライブの比較

永続ディスクのサイズを指定するときは、これらのディスクが従来の物理ハードドライブと比較してどの程度かということを考えます。次の表は、標準的な永続ディスクおよび SSD 永続ディスクを、一般的な 7,200 RPM SATA ドライブで期待される典型的なパフォーマンス(75 IOPS または 120 MB/秒)と比較したものです。

I/O の種類 I/O のパターン 7200 RPM SATA ドライブに匹敵するために必要なサイズ
標準永続ディスク SSD 永続ディスク
小規模でランダムな読み取り 小規模でランダムな読み取り 75 IOPS 100 GB 3 GB
小規模でランダムな書き込み 小規模でランダムな書き込み 75 IOPS 50 GB 3 GB
大量のストリーミング読み取り 120 MB/秒ストリーミング読み取り 1,000 GB 250 GB
大量のストリーミング書き込み 120 MB/秒ストリーミング書き込み 1,000 GB 250 GB

価格対パフォーマンス

アプリケーションで使用するボリューム タイプとサイズを選択する場合、複数の情報を検討する必要がありますが、ボリュームの使用料金は考慮する必要がありません。永続ディスクには I/O あたりのコストはないので、ディスク費用の予算を計算するために、毎月の I/O 量を見積もる必要はありません。ただし、IOPS 指向のワークロードの場合は、月あたりのコストを分析して、IOPS あたりの料金を比べてみることもできます。

以下の料金計算の例では、米国での永続ディスクの料金を使用します。これらの例で、標準永続ディスクと SSD 永続ディスクの相対的なコストを比較してみましょう。標準永続ディスクの料金は、1 GB あたり $0.040 で、SSD 永続ディスクは 1 GB あたり $0.170 です。ボリュームのサイズを大きくすると、追加コストなしでパフォーマンスの上限が自動的に上がります。

永続ディスクの IOPS あたりの料金を調べるには、GB-月の料金を GB あたりの IOPS 数で割ります。次の表は、GB あたりのランダム読み取り IOPS の料金を計算しています。同じ計算式で、書き込み IOPS あたりの料金も計算できます。

ディスクタイプ 料金(GB 単位/月) 読み取り IOPS/GB IOPS/GB あたりの料金
標準永続ディスク $0.040 0.75 $0.040 / 0.75 = $0.0533
SSD 永続ディスク $0.170 30 $0.170 ÷ 30 = $0.0057

パフォーマンスの上限に影響する要因

インスタンスの vCPU 数とボリューム サイズ

標準永続ディスク

標準永続ディスクの IOPS とスループットのパフォーマンスは、以下のインスタンスごとの上限に達するまで、ディスクのサイズに比例して直線的に上昇します。

  • 読み取りスループット: 10 TB のディスクサイズで最大 1,200 MB/秒。
  • 書き込みスループット: 3.4 TB のディスクサイズで最大 400 MB/秒。
  • 読み取り IOPS: 10 TB のディスクサイズで最大 7,500 IOPS。
  • 書き込み IOPS: 10 TB のディスクサイズで最大 15,000 IOPS。

インスタンスの vCPU が 16 個以上の場合、標準永続ディスクのパフォーマンスが制限されることはありません。

下りネットワークの上限は vCPU の数に比例するため、インスタンスの vCPU が 8 個未満の場合、スループットに対して書き込み上限が低下します。実際の書き込みスループットは I/O のサイズによって変わります(IOPS レベルが同じなら、16 KB I/O は 8 KB I/O よりスループットを多く消費します)。

永続ディスクのパフォーマンスの利点を既存のインスタンスで実現するには、永続ディスクのサイズを変更して、永続ディスクごとの IOPS とスループットを増やします。

ボリューム サイズ(GB) 持続ランダム IOPS 持続スループット(MB/秒)
読み取り
(16 KB/IO 以下)
書き込み
(8 KB/IO 以下)
書き込み
(16 KB/IO)
読み取り 書き込み
10 * * * * *
32 24 48 48 3 3
64 48 96 96 7 7
128 96 192 192 15 15
256 192 384 384 30 30
512 384 768 768 61 61
1,000 750 1,500 1,500 120 120
1,500 1,125 2,250 2,250 180 180
2,048 1,536 3,072 3,072 245 245
4,000 3,000 6,000 6,000 480 400
5,000 3,750 7,500 7,500 600 400
8,192 6,144 12,288 7,500 983 400
10,000** 7,500 15,000 7,500 1,200 400
65,536 7,500 15,000 7,500 1,200 400

* このボリューム サイズはブート ボリュームにのみ使用してください。I/O バースト機能により、ブート ボリュームのパフォーマンスがここで説明した線形的な基準よりも高くなります。

** 上限に近いスループットは、CPU 使用率とリソースの可用性に依存するため、パフォーマンスの変動が予想されます。

SSD 永続ディスク

SSD 永続ディスクの IOPS パフォーマンスは、ディスクサイズだけでなく、インスタンスの vCPU の数によっても異なります。パフォーマンスは、ボリュームの上限または各 Compute Engine インスタンスの上限に達するまで、直線的にスケーリングします。

たとえば、ボリューム サイズが 1,000 GB の SSD 永続ディスクがあるとします。下の表によると、読み取りの上限は 30,000 IOPS となります。ただし、vCPU が 4 つしかないインスタンスを使用する場合、読み取りの上限は 15,000 IOPS となります。

書き込みスループットに対する下りネットワークの上限のため、コア数の少ない VM では書き込み IOPS とスループットが低くなります。詳細については、書き込みスループットの下りネットワーク上限をご覧ください。SSD 読み取り帯域幅や IOPS の上限付近での不変性は、上りネットワークの利用率に大きく依存します。特に IOPS 上限に近い 16 KB I/O の場合、多少の変動が予想されます。

SSD 永続ディスクは、レイテンシが 10 ミリ秒未満となるよう設計されています。測定されるレイテンシはアプリ固有のものです。

既存インスタンスの SSD 永続ディスクのパフォーマンスを向上させるには、インスタンスのマシンタイプを変更して VM あたりの上限を増やし、永続ディスクのサイズを変更して永続ディスクごとの IOPS とスループットを増やします。

持続ランダム IOPS 持続スループット(MB/秒)
ボリューム サイズ(GB) 読み取り
(8 KB/IO 以下)
読み取り
(16 KB/IO 以下)
書き込み
(8 KB/IO 以下)
書き込み
(16 KB/IO)
読み取り 書き込み
10 300 300 300 300 4.8 4.8
32 960 960 960 960 15 15
64 1,920 1,920 1,920 1,920 30 30
128 3,840 3,840 3,840 3,840 61 61
256 7,680 7,680 7,680 7,680 122 122
500 15,000 15,000 15,000 15,000 240 240
834 25,000 25,000 25,000 25,000 400 400
1,000 30,000 30,000 30,000 25,000 480 480
1,334 40,000 40,000 30,000 25,000 640 640
1,667 50,000 50,000 30,000 25,000 800 800
2,048 60,000 60,000 30,000 25,000 983 800
4,096 100,000 75,000 30,000 25,000 1,200 800
8,192 100,000 75,000 30,000 25,000 1,200 800
16,384 100,000 75,000 30,000 25,000 1,200 800
32,768 100,000 75,000 30,000 25,000 1,200 800
65,536 100,000 75,000 30,000 25,000 1,200 800
インスタンスの vCPU 数 読み取り
(8 KB/IO 以下)
読み取り
(16 KB/IO 以下)
書き込み
(8 KB/IO 以下)
書き込み
(16 KB/IO)
読み取り* 書き込み
1 vCPU 15,000 15,000 9,000 4,500 240 72
2~3 vCPU 15,000 15,000 15,000 4,500/vCPU 240 72/vCPU
4~7 15,000 15,000 15,000 15,000 240 240
8~15 15,000 15,000 15,000 15,000 800 400
16~31 25,000 25,000 25,000 25,000 1,200 800
32~63 vCPU 60,000 60,000 30,000 25,000 1,200 800
64 以上の vCPU** 100,000 75,000 30,000 25,000 1,200 800

* I/O ブロックサイズが 256 KB 以上の場合の最大スループット。

** CPU を最大限使用しても最大パフォーマンスが実現できるとは限りません。

マシンタイプ

コンピューティング最適化マシンタイプは、vCPU ごとの永続ディスクのパフォーマンス上限が他のマシンタイプとは異なります。次の表に、これらの上限を示します。

ボリュームごとのパフォーマンスは、標準ディスク パフォーマンスSSD ディスク パフォーマンスで説明されているものと変わりません。

C2 標準永続ディスク

インスタンスの vCPU 数 持続ランダム IOPS 持続スループット(MB/秒)
読み取り
(16 KB/IO 以下)
書き込み
(8 KB/IO 以下)
書き込み
(16 KB/IO)
読み取り* 書き込み
4 3,000 4,000 4,000 240 240
8 3,000 4,000 4,000 240 240
163,000 4,000 4,000 240 240
30 3,000 8,000 8,000 240 240
60 3,000 15,000 15,000 240 240

C2 SSD 永続ディスク

インスタンスの vCPU 数 持続ランダム IOPS 持続スループット(MB/秒)
読み取り
(16 KB/IO 以下)
書き込み
(8 KB/IO 以下)
書き込み
(16 KB/IO)
読み取り* 書き込み
4 4,000 4,000 4,000 240 240
8 4,000 4,000 4,000 240 240
168,000 4,000 4,000 320 240
30 15,000 8,000 8,000 600 240
60 30,000 15,000 15,000 1,200 400

同時読み書き

標準の永続ディスクの場合、同時に行われる読み書き込みは同じリソースを共有します。インスタンスで読み取りスループットまたは IOPS が大きくなると、実行できる書き込み量が少なくなります。逆に、インスタンスの書き込みスループットが増加すると、実行可能な読み取り量が減少します。

SSD 永続ディスクでは、読み取りスループットの上限と書き込みスループットの上限には同時に到達できますが、これは IOPS には当てはまりません。つまり、SSD 永続ディスクで読み取りと書き込みの上限に同時に到達することはできません。同時読み書きの間に読み取りと書き込みのスループットの上限を達成するには、IOPS のボトルネックに達することなく、ボリュームがスループットの上限を満たすことができるように、I/O サイズを最適化します。

同時読み書きでのインスタンスの IOPS の上限:

次の表に、I/O サイズが 8 KB の IOPS 値を示します。16 KB など他の I/O サイズでは IOPS 値も異なりますが、読み取りと書き取りの配分は同じです。

標準永続ディスク SSD 永続ディスク(8 vCPU) SSD 永続ディスク(32 vCPU 以上)
読み取り 書き込み 読み取り 書き込み 読み取り 書き込み
7,500 IOPS 0 IOPS 15,000 IOPS 0 IOPS 60,000 IOPS 0 IOPS
5,625 IOPS 3,750 IOPS 11,250 IOPS 3,750 IOPS 45,000 IOPS 7,500 IOPS
3,750 IOPS 7,500 IOPS 7,500 IOPS 7,500 IOPS 30,000 IOPS 15,000 IOPS
1,875 IOPS 11,250 IOPS 3,750 IOPS 11,250 IOPS 15,000 IOPS 22,500 IOPS
0 IOPS 15,000 IOPS 0 IOPS 15,000 IOPS 0 IOPS 30,000 IOPS

同時読み書きでのインスタンスのスループットの上限:

標準永続ディスク SSD 永続ディスク(8 vCPU) SSD 永続ディスク(16 vCPU 以上)
読み取り 書き込み 読み取り 書き込み 読み取り 書き込み
1,200 MB/秒 0 MB/秒 800 MB/秒* 400 MB/秒* 1,200 MB/秒* 800 MB/秒*
900 MB/秒 100 MB/秒
600 MB/秒 200 MB/秒
300 MB/秒 300 MB/秒
0 MB/秒 400 MB/秒

* SSD 永続ディスクの場合、最大読み取りスループットと最大書き込みスループットは互いに独立しているため、これらの制限は一定です。

大容量論理ボリュームのパフォーマンス

永続ディスクのサイズの上限は 64 TB で、VM 内の論理ボリューム管理機能を使用して、最大 257 TB の単一論理ボリュームを作成できます。ボリューム サイズが大きくなると、次のようにパフォーマンスに影響を及ぼします。

  • すべてのローカル ファイル システムに、このスケールが適しているわけではありません。マウントやファイル システムのチェックなどの一般的な操作には、時間がかかる場合があります。

  • 永続ディスクの最大パフォーマンスは、より小さいサイズで得られます。1 つの VM でこの大きさのストレージをすべて読み取りや書き込みするには、ディスクでの処理に時間がかかります。アプリケーションが対応している場合は、複数の VM を使用して、システム全体のスループットを向上させることを検討してください。

  • 大きな永続ディスクのスナップショットを取ると、完了まで予想以上に時間がかかる場合があり、アプリケーションとの密な連携が行われず、論理ボリュームのビューに矛盾が生じる可能性があります。

書き込みスループットの下りネットワーク上限

永続ディスクへの書き込み操作を行うたびに、仮想マシン(VM)インスタンスの累積下りネットワークの上限に対し加算されます。

VM インスタンスが実行できる永続ディスクの最大書き込みトラフィックを計算するには、2 Gbit/秒/vCPU のネットワーク上限からインスタンスの他の下りネットワーク トラフィックを差し引きます。残りのスループットが、永続ディスクの書き込みトラフィックに利用可能なスループットを表します。

Compute Engine は永続ディスクにデータを保存するため、組み込み済みの冗長性があります。インスタンスは、この冗長性を実現するために、永続ディスクにデータを 3 回並列に書き込みます。さらに、各書込みリクエストには、下り帯域幅を使用する一定量のオーバーヘッドがあります。

各インスタンスでは、VM の下りネットワークの上限に基づいて永続ディスクの書き込みが制限されています。下りネットワークで永続ディスクが IP トラフィックと競合している場合、下りネットワークの上限の 60% が永続ディスクのトラフィックに割り当てられ、IP トラフィックは 40% になります。次の表は、追加の IP トラフィックがある場合とない場合で予想される永続ディスクへの書き込み帯域幅を示しています。

標準永続ディスク SSD 永続ディスク
vCPU 数 標準永続ディスクの書き込み上限(MB/秒) 標準永続ディスクの書き込み割り当て(MB/秒) 上限に達するのに必要な標準ボリューム サイズ(GB) SSD 永続ディスクの書き込み上限(MB/秒) SSD 永続ディスクの書き込み割り当て(MB/秒) 上限に達するのに必要な SSD 永続ディスクサイズ(GB)
1 72 43 600 72 43 150
2 144 86 1,200 144 86 300
4 240 173 2,000 240 173 500
8 以上 400 346 3,334 400 346 834

この表の値がどのように計算されたかを理解するため、1 つの vCPU と標準の永続ディスクを使用した簡単な例で考えてみましょう。この例では、書き込みリクエストごとの帯域幅乗数の近似値が 3.3× になっています。つまり、データは 3 回書き出され、合計オーバーヘッドは 10% です。下りの上限を求めるには、下りネットワークの上限の 2 Gbit/秒(238 MB/秒)を(3.3)で割ります。

1 つの vCPU の最大書き込み帯域幅=238÷3.3≓72 MB/秒(標準永続ディスク)

前に示したパフォーマンスの表で示されている標準永続ディスクの GB あたり書き込みスループットの値を使用することにより、このパフォーマンスを達成するために必要なディスク容量を導出できます。

最大書き込み帯域幅の実現に必要な 1 vCPU あたりのディスク容量=72÷0.12≓600 GB

ゾーン永続ディスクと同様に、リージョン永続ディスクからの書き込みトラフィックは、VM インスタンスの累積下りネットワークの上限に対し加算されます。リージョン永続ディスクで使用できる下りネットワークを計算するには、6.6 という係数を使用します。

1 つの vCPU の最大書き込み帯域幅=238÷6.6≓36 MB/秒(標準複製対象永続ディスク)

16 コア以上の VM に対しては、書き込みスループットが 400 MB/秒から最大 800 MB/秒まで増加しても、永続ディスクの書き込みに消費されする下りネットワーク最大帯域幅は変化せず、1,320 MB/秒(400 MB/秒 * 3.3)に維持されます。

次のステップ