VM サイズ: Azure VM 上の SQL Server のパフォーマンスに関するベスト プラクティス
適用対象: Azure VM 上の SQL Server
この記事では、Azure Virtual Machines (VM) 上の SQL Server のパフォーマンスを最適化するための一連のベスト プラクティスおよびガイドラインとして、VM サイズのガイダンスを提供します。
通常、コストの最適化とパフォーマンスの最適化はトレードオフの関係になっています。 このパフォーマンスに関するベスト プラクティス シリーズでは、Azure Virtual Machines の SQL Server の "最善の" パフォーマンスを得ることに重点を置いています。 ワークロードの要求が厳しくない場合は、推奨される最適化がすべて必要になるわけではありません。 各推奨事項を評価するときに、パフォーマンスのニーズ、コスト、およびワークロードのパターンを考慮してください。
総合的な情報は、このシリーズ記事 (チェックリスト、ストレージ、セキュリティ、HADR の構成、ベースラインの収集) の他の記事をご覧ください。
チェック リスト
次のチェックリストを参照して、この記事の残りの部分で詳しく説明されている VM サイズのベスト プラクティスの概要を確認してください。
- Ebdsv5 シリーズは、Azure で最も高い I/O スループットと仮想コアの比率を提供し、メモリと仮想コアの比率は 8 です。 このシリーズのオファーでは、Azure VM 上の SQL Server ワークロードに対して最適な価格パフォーマンス比が提供されます。 ほとんどの SQL Server ワークロードで、このシリーズを最初に検討してください。
- 4 つ以上の vCPU を持つ VM サイズ (E4ds_v5 以上など) を使用します。
- SQL Server ワークロードの最適なパフォーマンスを得るために、メモリ最適化済み仮想マシン サイズを使用します。
- Edsv5 シリーズと Ebdsv5 シリーズ、Msv3 および Mdsv3 シリーズは、OLTP ワークロードに必要な最適なメモリ対仮想コア比を提供します。
- M シリーズ VM は、Azure で最高のメモリ対仮想コア比を提供します。 ミッション クリティカルな OLTP ワークロードとデータ ウェアハウス ワークロードには、これらの VM を検討してください。
- パフォーマンスが最適になるように SQL Server の設定とストレージ オプションが構成されるため、Azure Marketplace イメージを使って SQL Server 仮想マシンをデプロイします。
- ターゲット ワークロードのパフォーマンス特性を収集し、それらを使用してお客様のビジネスに適した VM サイズを決定します。
- Data Migration Assistant と SKU 推奨ツールを使って、既存の SQL Server ワークロードに適した VM サイズを確認します。
- Azure Data Studio を使って Azure に移行します。
警告
現在、NUMA ノードあたり 64 コアを超えるシステムへの SQL Server のインストールはサポートされていません。 現在、この制限は Msv3 および Mdsv3 ミディアム メモリ シリーズ内の Standard_M176s_3_v3 および Standard_M176s_4_v3 Azure 仮想マシン サイズに適用されます。
この VM サイズのチェックリストを他と比較するには、総合的なパフォーマンスに関するベスト プラクティスのチェックリストをご覧ください。
概要
Azure VM で SQL Server を作成するときは、必要なワークロードの種類を慎重に検討します。 既存の環境を移行する場合は、パフォーマンス ベースラインを収集して、Azure VM での SQL Server の要件を確認します。 新しい VM の場合は、ベンダーの要件に基づいて新しい SQL Server VM を作成します。
クラウド用に構築された新しいアプリケーションを使用して新しい SQL Server VM を作成する場合は、データや使用量の要件が変化したときに、それに合わせて SQL Server VM のサイズを簡単に変更できます。 下位レベルの D シリーズ、B シリーズ、または Av2 シリーズで開発環境を開始し、時間の経過とともに環境を拡張します。
ポータルでのストレージ構成で SQL Server VM のマーケットプレース イメージを使用します。 これにより、お客様のワークロードに必要なサイズ、IOPS、スループットを確保するために必要な記憶域プールの適切な作成が容易になります。 Premium Storage と Premium Storage のキャッシュをサポートする SQL Server VM を選択することが重要です。 詳細については、ストレージに関する記事をご覧ください。
現在、Ebdsv5 シリーズは、Azure で利用できる最高の I/O スループットと仮想コアの比率を提供しています。 SQL Server ワークロードの I/O 要件がわからない場合は、このシリーズがニーズを満たす可能性が最も高くなります。 詳細については、ストレージに関する記事をご覧ください。
Note
Ebdsv5 シリーズのより大きいサイズ (48 vCPU 以上) では、NVMe 対応ストレージ アクセスがサポートされています。 この高い I/O パフォーマンスを利用するには、NVMe を使用して仮想マシンをデプロイする必要があります。 NVMe は、SQL Server マーケットプレース イメージに対し、近日サポートされる予定ですが、現時点で NVMe を利用するには、SQL Server をご自身でインストールする必要があります。
SQL Server のデータ ウェアハウスおよびミッション クリティカルな環境では多くの場合、メモリと仮想コアの比率を 8 よりも大きくする必要があります。 中規模環境の場合は、16 個のメモリ対仮想コア比を選択し、大規模なデータ ウェアハウス環境では 32 個のメモリ対仮想コア比を選択できます。
SQL Server のデータ ウェアハウス環境では多くの場合、サイズの大きなマシンの並列処理が有効です。 このため、M シリーズと Mv2 シリーズは、大規模なデータ ウェアハウス環境に適切なオプションです。
現在のオンプレミス SQL Server データベースを Azure VM 上の SQL Server に移行するためのベースラインとして、ソース マシンの vCPU とメモリ構成を使用します。 ソフトウェア アシュアランスをお持ちである場合は、Azure ハイブリッド特典を利用してライセンスを Azure に提供し、SQL Server のライセンス コストを節約できます。
メモリ最適化 M シリーズ VM
M シリーズは、一部の最大の SQL Server ワークロードに適した仮想コア数とメモリを提供します。
M シリーズ VM の機能の一覧を次に示します。
- premium storage、premium storage caching、ultra ディスク、write acceleration、高速ネットワークをサポートします。
- メモリフットプリントが大きく、ストレージパフォーマンスに重点を置いていない高いコンピューティング機能を必要とする SQL Server ワークロードに適しています。
Msv3 および Mdsv3 シリーズ
Msv3 および Mdsv3 仮想マシンは、 medium、 high 、 高 メモリ レベルのコンピューティング能力とメモリ機能を備えています。 これらの VM は、前世代の Mv2 VM と比較して、パフォーマンス、スケーラビリティ、および障害に対する回復性を向上させます。
このシリーズの VM の一覧を次に示します。
- Msv3 および Mdsv3 中メモリ VM: 第 4 世代 Intel® Xeon® スケーラブル プロセッサを搭載し、NVMe インターフェイスを使用して最大 4 TB のメモリ、416 vCPU、130,000 IOPS、4,000 MBps のリモート ストレージ スループットの VM サイズを提供します。
- Msv3 および Mdsv3 の高メモリ VM: NVMe インターフェイスを使用したリモート ストレージに対して、6 TB から 16 TB、最大 832 vCPU、最大 260,000 IOPS、8,000 MBps スループットのメモリを備えた高メモリ ワークロード向けに設計されています。
- Mdsv3 非常に高いメモリ シリーズ: 第 4 世代 Intel® Xeon® Platinum 8490H (サファイア ラピッズ) プロセッサを搭載し、最大 32 TB のメモリ、1,792 vCPU、最大 200,000 IOPS、8,000 MBps のリモート ストレージ スループットを提供する M シリーズ ベースの仮想マシンの最大メモリ フットプリントを備えています。
警告
現在、NUMA ノードあたり 64 コアを超えるシステムへの SQL Server のインストールはサポートされていません。 現在、この制限は、Msv3 および Mdsv3 Medium Memory シリーズ内の Azure 仮想マシン のサイズ (Standard_M176s_3_v3、Standard_M176s_4_v3、Standard_M176ds_3_v3、Standard_M176ds_4_v3) に適用されます。
メモリ最適化 E シリーズ VM
E シリーズ VM は、大規模なデータベース、ビッグ データ分析、高パフォーマンスを維持するために大量の RAM を必要とするエンタープライズ アプリケーションなどのメモリ集中型ワークロード向けに設計されています。
Ebdsv5 シリーズ
Ebdsv5 シリーズは、Azure で使用可能な最も高いリモート ストレージ スループットを提供する、メモリ最適化された一連の VM です。 これらの VM のメモリと仮想コアの比率は 8:1 であり、高い I/O スループットと共に、SQL Server ワークロードに最適です。 Ebdsv5 シリーズの VM は、Azure 仮想マシンで実行される SQL Server ワークロードに対して最適な価格パフォーマンス比を提供し、ほとんどの運用環境の SQL Server ワークロードに対して強く推奨されます。
Note
Ebdsv5 シリーズのより大きいサイズ (48 vCPU 以上) では、NVMe 対応ストレージ アクセスがサポートされています。 この高い I/O パフォーマンスを利用するには、NVMe を使用して仮想マシンをデプロイする必要があります。
Edsv5 シリーズ
Edsv5 シリーズは、メモリ負荷の高いアプリケーション向けに設計されており、Ebdsv5 シリーズで提供されるほど高い I/O スループットを必要としない SQL Server ワークロードに最適です。 これらの VM は、最大 672 GiB の RAM のローカル ストレージ SSD 容量を備えており、非常に高いローカルとリモートのストレージ スループットを実現します。 これらのほとんどの仮想マシンでは、仮想コアあたりのメモリが一貫して約 8 GiB であり、大部分の SQL Server ワークロードに最適です。
このグループの最大の仮想マシンは Standard_E104ids_v5 であり、104 個の仮想コアと 672 GiBs のメモリが備わっています。 この仮想マシンは、分離されるため注目されています。つまり、ホスト上で実行される唯一の仮想マシンであることが保証され、他のお客様のワークロードから分離されます。 これのメモリと仮想コアの比率は、SQL Server に推奨される比率よりも低いため、分離が必要な場合にのみ使用してください。
Edsv5 シリーズの仮想マシンでは、Premium Storage と Premium Storage キャッシュがサポートされています。
ECadsv5-series
ECadsv5 シリーズの仮想マシン サイズは、一時ディスクを備えたメモリ最適化 Azure 機密 VM です。 Azure 機密 VM のセキュリティ上の利点については、機密 VM を確認してください。
Azure 機密 VM のセキュリティ機能によってパフォーマンスオーバーヘッドが発生する可能性があるため、ワークロードをテストし、パフォーマンス要件を満たす VM サイズを選択します。
汎用
汎用仮想マシン サイズは、開発とテスト、Web サーバー、小規模なデータベース サーバーのようなエントリ レベルの小さなワークロードに対して、メモリと仮想コアのバランスの取れた比率を提供するように設計されています。
General Purpose 仮想マシンではメモリと仮想コアの比率が小さいため、メモリベースのパフォーマンス カウンターを注意深く監視して、SQL Server が必要なバッファー キャッシュ メモリを確実に取得できるようにすることが重要です。 詳細については、メモリのパフォーマンス ベースラインをご覧ください。
運用環境のワークロードの開始時に推奨されるメモリと仮想コアの比率は 8 であるため、SQL Server が動作している汎用 VM の推奨される最小構成は、4 vCPU および 32 GiB のメモリです。
Ddsv5 シリーズ
Ddsv5 シリーズでは、vCPU、メモリ、一時ディスクの適正な組み合わせを提供しますが、サポートされている、メモリと仮想コアの比率は小さくなっています。
Ddsv5 VM には、低待機時間で高速のローカル ストレージが含まれています。
これらのマシンは、一時ストレージと部門別リレーショナル データベースへの高速アクセスを必要とする SQL やアプリの並列デプロイに最適です。 このシリーズのすべての仮想マシンでは、メモリと仮想コアの標準比率が 4 になっています。
このため、このシリーズのスターター仮想マシンとしては、D8ds_v5 を使うことをお勧めします。これには、8 個の仮想コアと 32 GiB のメモリが搭載されています。 最大のマシンは、96 個の仮想コアと 256 GiB のメモリが搭載された D96ds_v5 です。
Ddsv5 シリーズの仮想マシンでは、Premium Storage と Premium Storage キャッシュがサポートされています。
Note
Ddsv5 シリーズでは、メモリと仮想コアの比率が、SQL Server のワークロードに推奨される 8 ではありません。 そのため、小規模なアプリケーションと開発ワークロードにのみ、これらの仮想マシンを使用することを検討してください。
DCadsv5-series
DCadsv5 シリーズの仮想マシン サイズは、一時ディスクを備えた汎用 Azure 機密 VM です。 Azure 機密 VM のセキュリティ上の利点については、機密 VM を確認してください。
Azure 機密 VM のセキュリティ機能により、パフォーマンスオーバーヘッドが発生する可能性があります。ワークロードをテストし、パフォーマンス要件を満たす VM サイズを選択します。
B シリーズ
負荷の急増に対応できる B シリーズの仮想マシン サイズは、概念実証や、非常に小さなアプリケーションおよび開発サーバーなど、一貫したパフォーマンスを必要としないワークロードに最適です。
負荷の急増に対応できる B シリーズの仮想マシン サイズのメモリと仮想コアの比率は 4 です。 最大のバースト可能な B シリーズは、20 個の仮想コアと 80 GiB のメモリを備えた Standard_B20ms です。
このシリーズの特徴は、マシン サイズに応じて変化するバースト可能なクレジットを使用して業務時間中にアプリでバーストできることです。
クレジットを使い切ると、VM がマシンのベースライン パフォーマンスに戻ります。
B シリーズの利点は、特に 1 日を通して処理能力をそれほど必要としない場合、他のシリーズの他の VM サイズに比べて、コンピューティングの節約を実現しやすいことです。
このシリーズでは、Premium Storage がサポートされていますが、Premium Storage キャッシュはサポートされていません。
Note
負荷の急増に対応できる B シリーズでは、メモリと仮想コアの比率が、SQL Server のワークロードに推奨される 8 ではありません。 そのため、小規模なアプリケーション、Web サーバー、開発ワークロードにのみ、これらの仮想マシンを使用することを検討してください。
Av2 シリーズ
Av2 シリーズの VM は、開発とテスト、低トラフィックの Web サーバー、小規模から中規模アプリのデータベース、概念実証のようなエントリ レベルのワークロードに最適です。
Standard_A2m_v2 (2 個の仮想コアと 16 GiB のメモリ)、Standard_A4m_v2 (4 個の仮想コアと 32 GiB のメモリ)、Standard_A8m_v2 (8 個の仮想コアと 64 GiB のメモリ) のみ、メモリと仮想コアの比率がこれらの上位 3 つの仮想マシンに最適な 8 になっています。
これらの仮想マシンはどれも、小規模な開発およびテスト用の SQL Server マシンに適したオプションです。
8 仮想コア Standard_A8m_v2 は、小規模なアプリケーションおよび Web サーバーにも適したオプションです。
Note
Av2 シリーズでは Premium Storage がサポートされていないため、メモリと仮想コアの比率が 8 の仮想マシンであっても、運用環境の SQL Server ワークロードにはお勧めしません。
ストレージ最適化
ストレージ最適化済み VM サイズは、特定のユース ケースに適しています。 これらの仮想マシンは、最適化されたディスク スループットおよび IO を考慮して特別に設計されたものです。
Lsv2 シリーズ
Lsv2 シリーズは、高スループットで低遅延のローカル NVMe ストレージを特長としています。 Lsv2 シリーズの VM は、持続性のあるデータ ディスクを使用する代わりに、VM に直接接続されているノード上のローカル ディスクを使用するように最適化されています。
これらの仮想マシンは、ビッグ データ、データ ウェアハウス、レポート、ETL などのワークロードに最適なオプションです。 ローカル NVMe ストレージの高いスループットと IOPS は、データベースに読み込まれるファイルを処理する場合や、ソース システムまたはその他のリポジトリ (Azure BLOB ストレージや Azure Data Lake など) からデータを再作成できるその他のシナリオに対して使用するのに適しています。 また、Lsv2 シリーズの VM では、一度に最大 30 分間、ディスク パフォーマンスをバーストすることもできます。
これらの仮想マシンのサイズは 8 から 80 vCPU で、vCPU あたり 8 GiB のメモリがあり、8 vCPU ごとに 1.92 TB の NVMe SSD があります。 つまり、このシリーズの最大の VM である L80s_v2 には、10 x 1.92 TB の NVMe ストレージを備えた 80 vCPU と 640 BiB のメモリがあります。 これらのすべての仮想マシンでは、メモリと仮想コアの比率が一貫して 8 になっています。
NVMe ストレージはエフェメラルです。つまり、仮想マシンの割り当てを解除した場合、またはサービス復旧のために別のホストにデータを移動した場合、これらのディスクのデータは失われます。
Lsv2 および Ls シリーズでは、Premium Storage がサポートされていますが、Premium Storage キャッシュはサポートされていません。 IOPS を増やすローカル キャッシュの作成はサポートされていません。
警告
エフェメラルな NVMe ストレージにデータ ファイルを格納すると、VM の割り当てが解除されたときにデータが失われる可能性があります。
制約付き仮想コア
SQL Server の高パフォーマンス ワークロードでは、仮想コアの数は増やさずに、大量のメモリ、IOPS、スループットが必要になる場合がよくあります。
ほとんどの OLTP ワークロードは、多数の小さなトランザクションによって駆動されるアプリケーション データベースです。 OLTP ワークロードでは、少量のデータが読み取られるか変更されるだけですが、ユーザーの数に基づいて駆動されるトランザクションの量は非常に大きくなります。 SQL Server メモリを使用してプランをキャッシュし、パフォーマンスのために最近アクセスしたデータを格納し、物理読み取りをすばやくメモリに読み込むことができるようにすることが重要です。
これらの OLTP 環境では、より多くのメモリ、高速ストレージ、そして最適な実行に必要な I/O 帯域幅が必要です。
SQL Server のライセンス コストを上げずにこのレベルのパフォーマンスを維持するため、Azure ではvCPU の数が制限された VM サイズを提供しています。
これにより、親仮想マシンのメモリ、ストレージ、I/O 帯域幅を維持しながら、使用可能な仮想コア数を減らすことで、ライセンス コストを抑えることができます。
vCPU の数を、元の VM サイズの半分または 4 分の 1 に制限することができます。 仮想マシンで使用できる仮想コア数を削減すると、メモリと仮想コアの比率が高くなりますが、コンピューティング コストは変わりません。
これらの新しい VM サイズでは、識別しやすいように、アクティブな vCPU の数を指定するサフィックスが付加されています。
たとえば、M64-32ms には 32 個の SQL Server 仮想コアと、M64ms のメモリ、I/O、スループットのみのライセンスが必要であり、M64-16ms には 16 個の仮想コアのみのライセンスが必要です。 ただし、M64-16ms では、SQL Server のライセンス コストは M64ms の 4 分の 1 になりますが、仮想マシンのコンピューティング コストは同じです。
Note
- それでも中規模から大規模のデータ ウェアハウスのワークロードでは制約付き仮想コア VM が有効である可能性がありますが、データ ウェアハウスのワークロードは一般に、並列で実行されるクエリ プランによって少ない数のユーザーとプロセスで大量のデータを処理するという特徴があります。
- コンピューティング コスト (オペレーティング システムのライセンスを含む) は、親仮想マシンと同じままです。
次のステップ
詳細については、このベスト プラクティス シリーズにある他の記事を参照してください。
セキュリティのベスト プラクティスについては、「Azure Virtual Machines 上の SQL Server のセキュリティに関する考慮事項」をご覧ください。
SQL Server Virtual Machines に関する他の記事については、Azure Virtual Machines 上の SQL Server の概要に関するページをご覧ください。 SQL Server の仮想マシンに関するご質問については、よくあるご質問に関するページをご覧ください。