Google Cloud Hyperdisk のパフォーマンスの概要

このドキュメントでは、Google Cloud Hyperdisk のパフォーマンスについて説明します。これにより、Hyperdisk ボリュームのパフォーマンスを理解し、ワークロードに適した Hyperdisk タイプを選択できます。

Hyperdisk は、 Google Cloudで推奨される耐久性の高いブロック ストレージ オプションです。Hyperdisk の詳細については、Hyperdisk についてをご覧ください。

パフォーマンスの上限の詳細については、Hyperdisk のパフォーマンスの上限をご覧ください。

Hyperdisk ボリュームの現在または過去のパフォーマンスを確認するには、ディスク パフォーマンス指標を確認するをご覧ください。

用語と単位

このドキュメントで説明する Hyperdisk のパフォーマンスは、IOPS とスループットです。

  • IOPS は 1 秒あたりの入出力オペレーション数を表します。これは、ボリュームが 1 秒間に実行する、または実行可能な読み取りと書き込みの数です。
  • スループットとは、1 秒間にボリュームから読み取ったり、ボリュームに書き込むことができるバイト数のことです。スループットは MiB/秒で測定されます。

サイズの測定単位は GiB または TiB です。

マシンタイプに関する用語

コンピューティング インスタンスという用語は、仮想マシン(VM)インスタンスまたはベアメタル インスタンスを指します。コンピューティング インスタンスのマシンタイプは、マシンシリーズや vCPU 数などのプロパティの特定の組み合わせを意味します。

このドキュメントでは、マシンタイプは M-*-N という形式で表します。ここで

  • M は、マシンシリーズです。たとえば C3 です。
  • * は、すべてのメモリと CPU 構成を表します。たとえば standardhighcpu です。
  • N は、vCPU、CPU、または GPU の数です。たとえば、22 個の vCPU を使用するインスタンスの場合は 22、8 個の GPU を使用するインスタンスの場合は 8g です。
この形式には、次のマシンタイプが含まれます(利用可能な場合)。
  • ベアメタルのマシンタイプ(*-metal
  • ローカル SSD ディスク(*-lssd*-standardlssd*-highlssd)がアタッチされたマシンタイプ。

たとえば、c3-*-176 は、176 個の vCPU を備えたすべての C3 マシンタイプ(c3-standard-176c3-highcpu-176c3-highmem-176c3-standard-176-lssd)を指します。詳細については、Compute Engine の用語をご覧ください。

Hyperdisk のパフォーマンスの概要

Hyperdisk ボリュームをインスタンスにアタッチする場合、達成可能な最大パフォーマンスは、次の表に示すようにシナリオによって異なります。

Hyperdisk
ボリュームの数
最大パフォーマンス
1 ボリュームのパフォーマンスは、次のいずれかの低いほうになります。
  • ボリュームのプロビジョニングされたパフォーマンス
  • Hyperdisk タイプのマシンタイプのパフォーマンスの上限。
同じ Hyperdisk タイプの 2 つ以上 すべてのボリュームの合計パフォーマンスは、次のいずれかの少ないほうになります。
  • 各ボリュームのプロビジョニングされたパフォーマンスの合計
  • Hyperdisk タイプのマシンタイプのパフォーマンスの上限
2 つ以上の Hyperdisk タイプ すべてのボリュームの合計パフォーマンスは、次のいずれかの少ないほうになります。
  • 各ボリュームのプロビジョニングされたパフォーマンスの合計
  • インスタンスのマシンタイプのパフォーマンスの上限

Hyperdisk タイプ別の上限については、Hyperdisk タイプ別のパフォーマンスの上限をご覧ください。

マシンタイプ別の上限については、マシンタイプ別のパフォーマンスの上限をご覧ください。

Hyperdisk のプロビジョニングされたパフォーマンスについて

Hyperdisk ボリュームにターゲット パフォーマンス レベルを指定できます。指定またはプロビジョニングする IOPS 値またはスループット値は、プロビジョニングされたパフォーマンスと呼ばれます。

ボリュームのパフォーマンスは、ボリュームの作成時にプロビジョニングできます。また、ボリュームのサイズを増やすことなく、ボリュームの使用中にパフォーマンスの増減を行うこともできます。

プロビジョニングされたパフォーマンスは、保証されるパフォーマンス レベルではありません。これは、ピーク時のボリュームに必要となる目標のパフォーマンス レベルです。実際のパフォーマンスは、ボリュームを使用するインスタンスの上限とその他の要因によって異なります。

デフォルトのパフォーマンス レベル

Hyperdisk ボリュームのパフォーマンス レベルのプロビジョニングは任意です。値を指定しないと(ワークロードに必要な IOPS やスループットが不明な場合など)、Compute Engine はデフォルト値でボリュームを作成します。この値は後で増減できます。デフォルト値は Hyperdisk のタイプによって異なります。Hyperdisk BalancedHyperdisk Balanced High AvailabilityHyperdisk ExtremeHyperdisk ThroughputHyperdisk MLIOPS とスループットのデフォルト値をご覧ください。

プロビジョニングされたパフォーマンスの上限

プロビジョニングできる最大パフォーマンスは、Hyperdisk のタイプとボリューム サイズによって異なります。

Hyperdisk タイプの上限

各 Hyperdisk タイプには、プロビジョニングできる最大パフォーマンスがあります。一部の Hyperdisk タイプでは、IOPS、スループット、またはその両方をプロビジョニングできます。スループットをプロビジョニングできない場合、ボリュームのスループットは、プロビジョニングされた IOPS によって異なります。同様に、IOPS をプロビジョニングできない場合、ボリュームの IOPS はプロビジョニングするスループットによって異なります。

たとえば、Hyperdisk ML ボリュームにはスループットをプロビジョニングできますが、IOPS はプロビジョニングできません。Hyperdisk ML の IOPS とスループットの比率は、プロビジョニングされたスループットの MiB/秒あたり 16 IOPS です。たとえば、スループットが 100,000 MiB/秒の Hyperdisk ML ボリュームを作成すると、ボリュームは 1,600,000 IOPS でプロビジョニングされます。

サイズベースの制限

プロビジョニングできる最大パフォーマンスは、ボリュームのサイズによって異なります。たとえば、10 TiB の Hyperdisk Balanced ボリュームの場合は 3,000~160,000 IOPS をプロビジョニングできますが、50 GiB ボリュームの場合は 3,000~25,000 IOPS をプロビジョニングできます。

各 Hyperdisk タイプのサイズベースの上限の詳細については、Hyperdisk BalancedHyperdisk Balanced High AvailabilityHyperdisk ExtremeHyperdisk ThroughputHyperdisk ML の各ページのサイズとパフォーマンスの上限をご覧ください。

次の表に、各 Hyperdisk タイプにプロビジョニング可能な最大パフォーマンスを示します。

Hyperdisk タイプ 1 ボリュームにプロビジョニング可能な最大パフォーマンス カスタマイズ可能なスループット カスタマイズ可能な IOPS
Hyperdisk Balanced 160,000 IOPS
2,400 MiB/秒
はい
Hyperdisk Balanced High Availability 100,000 IOPS
1,200 MiB/秒
はい
Hyperdisk Extreme 350,000 IOPS いいえ。1,000 IOPS あたり 250 MiB/秒(最大 5,000 MiB/秒) はい
Hyperdisk ML 1,200,000 MiB/秒 はい いいえ。スループット 1 MiB/秒あたり 16 IOPS(最大 19,200,000 IOPS)
Hyperdisk Throughput 2,400 MiB/秒 いいえ。スループット 1 MiB/秒あたり 4 IOPS(最大 9,600 IOPS)。

安定状態のパフォーマンス

パフォーマンスの変動の影響を受けやすいワークロードの場合は、安定状態のパフォーマンスを提供するマシンシリーズの使用を検討してください。安定状態のパフォーマンスの上限は、インスタンスがアタッチされているすべてのボリューム間で維持されるパフォーマンス レベルです。一方、最大パフォーマンス レベルは、インスタンスが達成可能な最高のパフォーマンス レベルです。

安定状態のパフォーマンスの上限は、サービスレベル契約(SLA)を構成するものではありません。

Hyperdisk ボリュームが特定の安定状態のパフォーマンスの上限を達成するには、プロビジョニングされたパフォーマンスが安定状態の上限と同等か、それ以上である必要があります。

安定状態のパフォーマンスの上限は、インスタンスにアタッチされているすべてのディスクで共有されます。

安定状態のパフォーマンスを提供するマシンシリーズ

次のマシンシリーズは、安定状態のパフォーマンスを提供します。

プロビジョニングされたパフォーマンスを満たすようにワークロードを構成する

Hyperdisk ボリュームの実際のパフォーマンス(インスタンスにアタッチされたときに観測されるパフォーマンス)は、次の上限を超えることはできません。

  • ボリュームのプロビジョニングされたパフォーマンス
  • インスタンス固有のパフォーマンスの上限(Hyperdisk タイプの特定の上限を含む)
  • Hyperdisk Balanced ボリュームと Hyperdisk Balanced High Availability ボリュームの場合、ベースライン パフォーマンスの同時消費量の上限

したがって、プロビジョニングされたパフォーマンスにボリュームが到達できるようにするには、次の要素を考慮してください。

I/O サイズやアプリケーション設計などの要因は、パフォーマンスの上限ではありませんが、パフォーマンスに影響します。これらの要因の詳細については、パフォーマンスに影響するワークロード固有の要因をご覧ください。

インスタンスのパフォーマンスの上限が Hyperdisk のパフォーマンスに与える影響

各コンピューティング インスタンスには、マシンタイプに基づいて次のパフォーマンスの上限があります。

  • Hyperdisk タイプのパフォーマンスの上限
  • インスタンスの全体的なパフォーマンスの上限

各上限は特定の状況で適用されます。

各 Hyperdisk タイプのインスタンスのパフォーマンスの上限

各インスタンスには、インスタンスにアタッチする特定タイプのすべての Hyperdisk ボリュームのパフォーマンスの上限があります。

この上限が適用される場合: 同じタイプの Hyperdisk ボリュームを 1 つ以上インスタンスにアタッチする場合。各ボリュームがプロビジョニングされたパフォーマンスに到達するには、インスタンスのパフォーマンスの上限が、すべてのボリュームのプロビジョニングされたパフォーマンスの合計よりも大きくする必要があります。そうしないと、ボリュームのパフォーマンスがインスタンスのパフォーマンスの上限を超える可能性があります。

プロビジョニングされたスループットが 600 MiB/秒の Hyperdisk Throughput ボリューム hdt-disk-1 があり、これを c3-*-4 インスタンスにアタッチするとします。

c3-*-4 インスタンスには次のスループット上限があります。

Hyperdisk タイプ 最大スループット(MiB/秒)
Hyperdisk Balanced 400
Hyperdisk Extreme サポート対象外
Hyperdisk Throughput 240
Hyperdisk Balanced High Availability 400
Hyperdisk ML 400

hdt-disk-1 を VM にアタッチする場合、ボリュームの実際のパフォーマンスは 240 MiB/秒を超えることはできません。Hyperdisk Balanced ボリュームをアタッチする場合、Hyperdisk Balanced ボリュームのパフォーマンスは 400 MiB/秒を超えることはありません。

2 つの Hyperdisk Balanced ボリュームを VM にアタッチしても、両方の Hyperdisk Balanced ボリュームの合計パフォーマンスは 400 MiB/秒を超えることはできません。これは、両方のボリュームのプロビジョニングされたパフォーマンスに関係なく当てはまります。

マシンタイプ別の各 Hyperdisk のパフォーマンス上限については、Hyperdisk タイプ別のパフォーマンス上限をご覧ください。

インスタンスの全体的なパフォーマンスの上限

各インスタンスには、全体的に到達可能なパフォーマンスの上限があります。この上限は、インスタンスにアタッチされているすべてのボリュームで共有されます。

この上限が適用される場合: 複数のタイプの Hyperdisk をインスタンスにアタッチする場合。各ボリュームのプロビジョニングされたパフォーマンスに関係なく、すべてのボリュームの実際のパフォーマンスの合計が、インスタンスのパフォーマンス上限を超えることはできません。

インスタンスが Persistent Disk をサポートしている場合、アタッチされたすべての Persistent Disk ボリュームも同じ上限を共有します。

最大スループットが 1,800 MiB/秒の c3-*-22 インスタンスがあるとします。

次のリソースを VM にアタッチします。

  • 2 つの Hyperdisk Balanced ボリューム(それぞれ 900 MiB/秒のプロビジョニングされたスループット)。
  • 500 MiB/秒のプロビジョニングされたスループットを持つ 1 つの Hyperdisk Throughput ボリューム

すべてのボリュームの合計パフォーマンスは 1,800 MiB/秒を超えることはできません。

上限の一覧については、マシンタイプ別のパフォーマンスの上限をご覧ください。

ベースライン パフォーマンスの同時消費の上限

Compute Engine は、同じゾーンまたは同じストレージ プールにあるプロジェクトの Hyperdisk Balanced High Availability ボリュームと Hyperdisk Balanced ボリュームが同時に消費できる無料パフォーマンスの量を制限します。この上限は、ベースライン パフォーマンスの同時使用上限と呼ばれます。

この上限が適用される場合: この上限は、同じゾーンに 150 個を超える Hyperdisk Balanced ボリュームと Hyperdisk Balanced High Availability ボリュームがあるプロジェクトに適用されます。この上限は、ストレージ プールで高パフォーマンスのプロビジョニングが使用されていない場合、Hyperdisk Balanced ストレージ プールのボリュームにも適用されます。

Hyperdisk Balanced ボリュームと Hyperdisk Balanced High Availability ボリュームのプロビジョニングされたパフォーマンスは、課金対象のパフォーマンスと無料のパフォーマンスで構成されます。プロビジョニングする最初の 3,000 IOPS と 140 MiB/秒のスループットは無料で、ベースライン パフォーマンスと呼ばれます。3,000 IOPS または 140 MiB/秒を超えるプロビジョニングされたパフォーマンスは、課金対象のパフォーマンスと見なされます。たとえば、4,000 IOPS でプロビジョニングされたボリュームには、1,000 の課金対象 IOPS があります。

同じプロジェクトとゾーン内の Hyperdisk Balanced High Availability ボリュームと Hyperdisk Balanced ボリュームには、ベースライン パフォーマンスに対して次の同時消費上限があります。

  • ベースライン IOPS の同時消費上限: 500,000 IOPS
  • ベースライン スループットの同時消費の上限: 50 GiB/秒

ベースライン パフォーマンスの同時消費上限の仕組み

プロジェクト内で、同じゾーン内のすべてのボリュームに 500,000 IOPS を超える IOPS と 50 GiB/秒のスループットをプロビジョニングする。ただし、ボリュームが同時に消費できる IOPS は 500,000 まで、スループットは 50 GiB/秒までです。

また、同時パフォーマンスの合計が、プロビジョニングしたベースライン パフォーマンスの合計を超えることはできません。たとえば、同じゾーンとプロジェクト内で合計 100,000 のベースライン IOPS をプロビジョニングした場合、ベースライン パフォーマンスの同時消費上限は 100,000 IOPS になります。

同じプロジェクトとゾーン内の合計使用量の上限

プロジェクト内の各ゾーンには、同時消費量の合計上限があります。これは、すべての Hyperdisk Balanced と Hyperdisk Balanced High Availability が同時に使用できる課金対象パフォーマンスとベースライン パフォーマンスの合計パフォーマンスです。

プロジェクト内の各ゾーンの同時消費量の合計上限は、次の値の合計です。

  • ゾーン内のすべての Hyperdisk Balanced ボリュームと Hyperdisk Balanced High Availability ボリュームでプロビジョニングされた課金対象のパフォーマンス
  • ベースライン パフォーマンスのゾーンの同時消費量の上限。次のいずれか小さいほうです。
    • 同じゾーン内のすべてのボリュームにプロビジョニングされたベースライン IOPS またはスループットの合計
    • 500,000 IOPS または 50 GiB/秒のスループット

同時消費の要件を満たすようにパフォーマンスをプロビジョニングする

ワークロードに十分なパフォーマンスがプロビジョニングされていることを確認するには、次の値を比較します。

  • ボリュームが同時に消費すると予想される合計パフォーマンス
  • 同じゾーンにあるプロジェクトの Hyperdisk Balanced ボリュームと Hyperdisk Balanced High Availability ボリュームの同時消費量の合計上限

ボリュームが消費すると予想される合計パフォーマンスが合計同時消費上限を超える場合、課金対象のパフォーマンスをプロビジョニングしない限り、Compute Engine はボリュームのパフォーマンスを制限します。

次の例を考えてみましょう。

例 1

プロジェクトにゾーン A に 10 個の Hyperdisk Balanced ボリュームがあり、各ボリュームに 100,000 IOPS がプロビジョニングされているため、プロビジョニングされた IOPS の合計は 1,000,000 です。ボリュームが同時に 800,000 IOPS を消費すると予想されます。

同時実行消費量の合計上限を特定するには、プロビジョニングされた課金対象 IOPS の合計に、ベースライン パフォーマンスのプロジェクトの同時実行消費量の上限を加えます。

  • プロビジョニングされた課金対象 IOPS の合計: 970,000 ((100,000 - 3,000) * 10 個のディスク)
  • ベースライン パフォーマンスの同時消費上限: 30,000 IOPS。これは、次のいずれか小さいほうです。
    • プロビジョニングされたベースライン IOPS の合計: 30,000(3,000 × 10)
    • 500,000 IOPS

ゾーン A で同時に使用可能な合計パフォーマンスは 1,000,000 IOPS(30,000 + 970,000)です。プロビジョニングされたベースライン IOPS の合計が 500,000 IOPS 未満であるため、ボリュームのパフォーマンスは制限されません。

例 2

プロジェクトにゾーン C に 500 個の Hyperdisk Balanced High Availability ボリュームがあり、それぞれに 3,500 IOPS がプロビジョニングされているため、プロビジョニングされた IOPS の合計は 1,750,000 になります。ボリュームが同時に 1,000,000 IOPS を消費するとします。

同時実行消費量の上限を合計するには、プロビジョニングされた課金対象 IOPS の合計を、ベースライン パフォーマンスのプロジェクトの同時実行消費量の上限に追加します。

  • プロビジョニングされた課金対象 IOPS の合計は 250,000 です((3,500 - 3,000)* 500 ディスク)。
  • ベースライン パフォーマンスの同時消費上限は 500,000 IOPS です。これは、次のいずれかの小さいほうであるためです。
    • プロビジョニングされたベースライン IOPS の合計: 1,500,000(3,000 × 500)
    • 500,000 IOPS

ゾーン C の同時消費可能な合計パフォーマンスは 750,000 IOPS(250,000 + 500,000)です。ボリュームの ベースライン IOPS の同時消費量は 500,000 IOPS に制限されます。

1,000,000 IOPS を同時に消費するには、ボリュームに対して課金対象のパフォーマンスをさらにプロビジョニングします。

パフォーマンスに影響するワークロード固有の要因

このセクションでは、Hyperdisk ボリュームで達成できるスループットと IOPS の上限に影響するワークロード固有の要因について説明します。パフォーマンスを改善する方法については、Hyperdisk のパフォーマンスを最適化するをご覧ください。

Hyperdisk ボリュームが提供する最大 IOPS とスループット レベルを達成するには、次のワークロード パラメータを考慮する必要があります。

  • I/O サイズ: IOPS とスループットの上限に達するには、次のように特定のブロックサイズを使用する必要があります。
    • IOPS の上限では、I/O サイズが 4 KB である必要があります。
    • 最大スループットの上限では、256 KB 以上の I/O サイズが必要です。
  • キューの長さ: キューの長さは、ボリュームに対する保留中のリクエストの数です。最大パフォーマンスの上限を達成するには、ワークロードの I/O サイズ、IOPS、レイテンシ感度に応じてキューの長さをチューニングする必要があります。最適なキューの長さはワークロードによって異なりますが、一般的には 256 より大きくする必要があります。
  • アタッチされたボリュームの数: 最適なパフォーマンスを得るには、単一のインスタンスにアタッチするボリュームを 8 個以下にすることをおすすめします。

次のステップ