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

インスタンスで実行されるアプリのストレージ オプションを構成する手順は次のとおりです。

ワークロードを把握する

主に小規模な(4 KB~16 KB の)ランダム I/O を伴うワークロードの場合、1 秒あたりのランダムな入出力オペレーション回数(IOPS)が制限要因になります。

主に順次 I/O または大規模な(256 KB~1 MB の)ランダム I/O を伴うワークロードの場合は、スループットが制限要因になります。

ストレージ オプションを選択する

インスタンスで使用するブロック ストレージには、複数のタイプを指定できます。タイプごとに、価格、パフォーマンス、耐久性の特性が異なります。完全な比較については、ストレージ オプションをご覧ください。

  • 標準永続ディスクは、主に順次 I/O を使用する大規模なデータ処理ワークロードに適しています。
  • SSD 永続ディスクは、標準永続ディスクよりもレイテンシが低く IOPS が大きいディスクを必要とするエンタープライズ アプリケーションや高性能データベースに適しています。SSD 永続ディスクは、レイテンシが 10 ミリ秒未満となるよう設計されています。観測されるレイテンシはアプリケーション固有です。
  • ローカル SSD は低レイテンシを提供しますが、冗長性がなく、特定のインスタンスの存続期間のみ存在します。
ゾーン
標準
永続ディスク
リージョン
標準
永続ディスク
ゾーン
SSD
永続ディスク
リージョン
SSD
永続ディスク
ローカル SSD(SCSI) ローカル SSD(NVMe)
最大持続 IOPS
読み取り IOPS/GB 0.75 0.75 30 30
書き込み IOPS/GB 1.5 1.5 30 30
読み取り IOPS/インスタンス 7,500* 3,000* 15,000~100,000* 15,000~100,000* 900,000(ベータ版) 2,400,000(ベータ版)
書き込み IOPS/インスタンス 15,000* 15,000* 15,000~30,000* 15,000~30,000* 800,000(ベータ版) 1,200,000(ベータ版)
最大持続スループット(MB/秒)
読み取りスループット/GB 0.12 0.12 0.48 0.48
書き込みスループット/GB 0.12 0.12 0.48 0.48
読み取りスループット/インスタンス 240~1,200* 240* 240~1,200* 240~1,200* 9,360(ベータ版) 9,360(ベータ版)
書き込みスループット/インスタンス 76~400** 38~200** 204~800* 102~400* 4,680(ベータ版) 4,680(ベータ版)
* 永続ディスクの IOPS とスループット パフォーマンスは、ディスクサイズ、インスタンスの vCPU 数、I/O ブロックサイズなどの要因によって決まります。
** 永続ディスクは、インスタンスの vCPU の数が多いほど、スループット パフォーマンスが高くなります。書き込みスループットの下り(外向き)ネットワークの上限をご覧ください。

1 つのディスクを複数の仮想マシンに接続しても、全体的なパフォーマンスまたは費用には影響しません。各マシンはディスクごとのパフォーマンス制限を分け合います。

最大パフォーマンス上限付近の SSD の読み取り帯域幅と IOPS の整合性は、上り(内向き)ネットワーク利用率に大きく依存します。特に、I/O サイズが 16 KB で、最大 IOPS 上限付近でオペレーションが実行される場合、パフォーマンス上限が変動することが予想されます。

永続ディスクの IOP あたりの費用を計算する

永続ディスクでは I/O あたりの費用は発生しないので、ディスク費用の予算を計算するために、毎月の I/O 量を見積もる必要はありません。ただし、IOPS 指向のワークロードについては、月あたりの費用を分析して、IOPS あたりの料金を比較することができます。

以下の料金計算の例では、米国での永続ディスクの料金を使用します。標準永続ディスクを SSD 永続ディスクと比較した相対的な費用を考えてみましょう。たとえば、ゾーン us-central1 では、標準永続ディスクの料金は GB あたり $0.040、SSD 永続ディスクの料金は 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

標準永続ディスクは手頃な容量を提供します。SSD 永続ディスクは IOPS 指向のワークロードに適した価格性能比を提供します。詳細については、永続ディスクの料金ローカル SSD の料金をご覧ください。

ディスクとインスタンスを構成する

パフォーマンスを最大限に高めるには、正しいディスクサイズ、vCPU 数、マシンタイプを構成する必要があります。

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

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

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

ディスクサイズと vCPU 数

標準永続ディスクと SSD 永続ディスクのパフォーマンスは、ディスクのサイズに応じて変動します。また、書き込みスループットの下り(外向き)ネットワークの上限のため、VM インスタンスの vCPU 数にも依存します。

パフォーマンスは、ディスクの上限またはディスクが接続されているインスタンスの上限のいずれかに到達するまで、線形に上昇します。ディスクが接続されているインスタンスの上限は、インスタンスのマシンタイプと vCPU 数によって決まります。SSD 永続ディスクのパフォーマンスがインスタンスの上限にどのように依存するかについては、マシンタイプと vCPU 数をご覧ください。

たとえば、N2 マシンタイプと 4 つの vCPU を持つインスタンスに接続された 1,000 GB の SSD 永続ディスクがあるとします。ディスクのサイズのみに基づく読み取り制限は、30,000 IOPS です。しかし、インスタンスには 4 つの vCPU があるので、読み取り上限は 15,000 IOPS に制限されます。

以下の表は、ディスクサイズの増加によってパフォーマンスがどのように変化するかを示しています。この表では、パフォーマンスが大幅に変化するサイズのみを記載しています。ディスクサイズは 1 GB 単位で指定できます。

ディスクサイズ別の標準永続ディスクのパフォーマンス

IOPS 持続スループット(MB/秒)
ディスクサイズ(GB) 読み取り
(I/O あたり 16 KB 以下)
書き込み
(I/O あたり 8 KB 以下)
書き込み
(I/O あたり 16 KB)
読み取り 書き込み
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~
65,536
7,500 15,000 7,500 1,200 400

* このディスクサイズはブートディスクにのみ使用します。I/O バーストにより、ブート ボリュームのパフォーマンスはここで説明している線形の上昇よりも高くなります。

ディスクサイズ別の SSD 永続ディスクのパフォーマンス

IOPS 持続スループット(MB/秒)
ディスクサイズ(GB) 読み取り
(I/O あたり 8 KB 以下)
読み取り
(I/O あたり 16 KB 以下)
書き込み
(I/O あたり 8 KB 以下)
書き込み
(I/O あたり 16 KB)
読み取り 書き込み
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,000~65,536 100,000 75,000 30,000 25,000 1,200 800

マシンタイプと vCPU 数

Compute Engine では、さまざまなワークロードに合わせてマシンタイプがグループ化されて提供されています。各マシンタイプには、vCPU あたりの固有の永続ディスク上限が適用されます。ディスクサイズ別のパフォーマンスは、すべてのマシンタイプで同じです。

パフォーマンスに影響する要因を検討する

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

仮想マシン(VM)インスタンスには、VM のマシンタイプに依存する下り(外向き)ネットワークの上限があります。

Compute Engine は、複数の並列書き込みで永続ディスクにデータを保存し、冗長性を確保します。さらに、各書き込みリクエストには、追加の書き込み帯域幅を使用するオーバーヘッドが多少あります。

VM インスタンスが送信できる書き込みトラフィックの最大量は、この冗長性とオーバーヘッドで使用される書き込み帯域幅を考慮した帯域幅乗数で、下り(外向き)ネットワークの上限を割った値になります。

永続ディスクが下り(外向き)ネットワーク帯域幅の IP トラフィックと競合する状況では、最大書き込み帯域幅の 60% が永続ディスクのトラフィック、残りの 40% が IP トラフィックに消費されます。以下をクリックすると、VM インスタンスが送信できる永続ディスク書き込みトラフィックの最大量の計算例が表示されます。

同時読み書き

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

SSD 永続ディスクでは、読み取りスループットの上限と書き込みスループットの上限には同時に到達できますが、SSD 永続ディスクで読み取りと書き込みの最大 IOPS 上限に同時に到達することはありません。

スループット = IOPS × I/O サイズであることに注意してください。SSD 永続ディスク上の同時読み書きで最大スループット上限を利用するには、読み取り IOPS と書き込み IOPS を合わせた値が IOPS 上限を超えないような I/O サイズを使用します。

論理ボリューム サイズ

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

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

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

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

1 つの VM インスタンスで複数のディスクを使用する場合

同じタイプの複数のディスク

同じタイプ(標準または SSD)の複数のディスクを同じモード(たとえば、読み取り/書き込み)で接続しているとします。ディスクを 1 つだけ使用している場合、そのディスクは、複数のディスクの合計サイズに対応するパフォーマンス上限まで到達できます。すべてのディスクを 100% 使用する場合、相対的なディスクサイズに関係なく、全体的なパフォーマンス上限はディスク間で均等に分割されます。

たとえば、200 GB の標準ディスクと 1,000 GB の標準ディスクがあるとします。

1,000 GB のディスクを使用しない場合、200 GB のディスクは、1,200 GB の標準ディスクのパフォーマンス上限まで到達できます。両方のディスクを 100% 使用する場合、それぞれの標準永続ディスクのパフォーマンス上限は 600 GB になります(1,200 GB ÷ 2 つのディスク = 1 ディスクあたり 600 GB)。

この点を確認するため、次のようなインスタンスについて考えてみましょう。instance-a には、200 GB の標準永続ディスクが 1 つと、1,000 GB の標準永続ディスクが 1 つあります。instance-b には、200 GB の標準永続ディスクが 1 つあります。それ以外の点では、2 つのインスタンスの構成はまったく同じです。

マルチディスク インスタンス。 単一ディスク インスタンス。

instance-a の 200 GB のディスクと instance-b の 200 GB ディスクに対して、以下のコマンドを別々に実行し、読み取り IOPS をテストします。

マルチディスク インスタンスの読み取り IOPS。 単一ディスク インスタンスの読み取り IOPS。

instance-a の 200 GB のディスクで観測された読み取り IOPS の結果は 902 です。これは、合計ディスクサイズ(200 GB + 1,000 GB = 1,200 GB)に対して予測される読み取り IOPS レベルと一致します。

異なるタイプの複数のディスク

1 つの VM に異なるタイプの複数のディスクが接続されている場合、VM の合計パフォーマンス上限は VM あたりの SSD 上限によって決まります。この合計パフォーマンス上限は、VM に接続されているすべてのディスクで共有されます。

たとえば、5,000 GB の標準ディスク 1 つと 1,000 GB の SSD ディスク 1 つが、1 つの vCPU を持つ N2 VM に接続されているとします。標準ディスクの読み取り IOPS 上限は 3,000 で、SSD ディスクの読み取り IOPS 上限は 15,000 です。SSD ディスクの上限によって全体の上限が決まるため、この VM の合計読み取り IOPS 上限は 15,000 です。この上限は、接続されているすべてのディスクで共有されます。

パフォーマンス指標を確認する

永続ディスクのパフォーマンス指標は、Google Cloud の統合モニタリング ソリューションである Cloud Monitoring で確認できます。

それらの指標の一部は、ディスクがスロットリングされているかどうかと、いつスロットリングされるかを把握するために役立ちます。スロットリングは、急増する I/O をなだらかにするために行われます。スロットリングを行うと、急増する I/O を一定期間にわたって分散できるので、ディスクのパフォーマンス上限に到達することはありますが、上限を超える瞬間はありません。

詳細については、永続ディスクのパフォーマンス指標を確認するをご覧ください。

ディスクのパフォーマンスの最適化

ディスクのパフォーマンスを高めるには、次の手順を実施します。

ボトルネックの原因が VM のディスクサイズまたはマシンタイプではないとわかった場合は、アプリとオペレーティング システムの調整が必要になることがあります。永続ディスクのパフォーマンスのベンチマークと調整の詳細については、永続ディスクのパフォーマンスの最適化ローカル SSD のパフォーマンスの最適化をご覧ください。

次のステップ