VM サイズ: Azure VM 上の SQL Server のパフォーマンスに関するベスト プラクティス
適用対象: Azure VM 上の SQL Server
この記事では、Azure Virtual Machines (VM) 上の SQL Server のパフォーマンスを最適化するための一連のベスト プラクティスおよびガイドラインとして、VM サイズのガイダンスを提供します。
通常、コストの最適化とパフォーマンスの最適化はトレードオフの関係になっています。 このパフォーマンスに関するベスト プラクティス シリーズでは、Azure Virtual Machines の SQL Server の "最善の" パフォーマンスを得ることに重点を置いています。 ワークロードの要求が厳しくない場合は、推奨される最適化がすべて必要になるわけではありません。 各推奨事項を評価するときに、パフォーマンスのニーズ、コスト、およびワークロードのパターンを考慮してください。
総合的な情報は、このシリーズ記事 (チェックリスト、ストレージ、セキュリティ、HADR の構成、ベースラインの収集) の他の記事をご覧ください。
チェック リスト
次のチェックリストを参照して、この記事の残りの部分で詳しく説明されている VM サイズのベスト プラクティスの概要を確認してください。
- ワークロードのパフォーマンス特性を特定して、ビジネスに適した VM サイズを決定します。
- Azure に移行する場合、Data Migration Assistant や SKU の推奨事項などのツールを使用して、既存の SQL Server ワークロードに適した VM サイズを見つけ、Azure Data Studio を使用して移行します。
- SQL Server の設定とストレージ オプションが、最適なパフォーマンスが得られるように構成されているため、Azure Marketplace のイメージを使用して SQL Server VM をデプロイします。
- 4 個以上の vCPU を搭載する VM サイズを使用します。
- SQL Server ワークロードの最適なパフォーマンスを得るために、メモリ最適化済み仮想マシン サイズを使用します。
- Edsv5 シリーズと、Msv3 および Mdsv3 シリーズは、OLTP ワークロードに推奨される最適なメモリ対仮想コアの比率を提供します。
- Mbdsv3 シリーズの VM は、Azure VM 上の SQL Server ワークロードに最適なパフォーマンスを提供します。 ミッション クリティカルな OLTP およびデータ ウェアハウス SQL Server ワークロードについては、このシリーズを最初に検討してください。
- Ebdsv5 シリーズは、I/O スループット対仮想コアの比率が高く、メモリ対仮想コアの比率は 8:1 になります。 このシリーズのオファーでは、Azure VM 上の SQL Server ワークロードに対して最適な価格パフォーマンス比が提供されます。 ほとんどの SQL Server ワークロードについては、これらの VM を最初に検討してください。
- M シリーズ ファミリは、Azure でメモリ割り当てが最大の VM を提供します。
- Mbsv3 および Mbdsv3 シリーズの VM は、高いメモリ割り当てと、M シリーズ ファミリで最も高い I/O スループット対仮想コアの比率を実現し、メモリ対仮想コアの比率は一貫して 8:1 以上になります。
- 下位レベルの D シリーズ、B シリーズ、または Av2 シリーズで開発環境を開始し、時間の経過とともに環境を拡張します。
この VM サイズのチェックリストを他と比較するには、総合的なパフォーマンスに関するベスト プラクティスのチェックリストをご覧ください。
概要
Azure VM で SQL Server を作成するときは、必要なワークロードの種類を慎重に検討します。 既存の環境を移行する場合は、パフォーマンス ベースラインを収集して、Azure VM での SQL Server の要件を確認します。 現在のオンプレミス SQL Server データベースを Azure VM 上の SQL Server に移行するためのベースラインとして、ソース マシンの vCPU とメモリ構成を使用します。 ソフトウェア アシュアランスをお持ちである場合は、Azure ハイブリッド特典を利用してライセンスを Azure に提供し、SQL Server のライセンス コストを節約できます。
新しい VM の場合は、アプリケーションの要件に基づいて新しい SQL Server VM を作成します。 クラウド用に構築された新しいアプリケーションを使用して新しい SQL Server VM を作成する場合は、データや使用量の要件が変化したときに、それに合わせて SQL Server VM の規模を簡単に変更できます。 下位レベルの D シリーズ、B シリーズ、または Av2 シリーズで開発環境を開始し、時間の経過とともに環境を拡張します。
SQL Server ワークロードに基づいて、次の VM シリーズを検討してください。
- ミッション クリティカルなワークロード向けの最大のメモリ割り当て: Mbsv3 と Mbdsv3 シリーズの VM は、Azure で最大のメモリ割り当てを提供し、最適なストレージ パフォーマンスを実現します。
- I/O スループット対仮想コアの高い比率: Mbsv3 と Mbdsv3 シリーズの VM は、どのクラウドのどの VM シリーズでも、最大のスループット対仮想コア比率を実現します。 Ebdsv5 シリーズの VM は、Azure で 2 番目に高いスループット対仮想コアの比率を実現します。 SQL Server ワークロードの I/O 要件がわからない場合、最もニーズに近いのは、おそらく Ebdsv5 シリーズの VM です。 詳細については、ストレージに関する記事をご覧ください。
- 大規模なマシンの並列処理: Msv3 と Mdsv3 シリーズの VM では並列処理が可能です。これは、大規模なデータ ウェアハウス環境に適した選択肢です。
SQL Server のデータ ウェアハウスとミッション クリティカルな環境では多くの場合、メモリ対仮想コアの比率を 8:1 よりも大きくする必要があります。 中規模の環境ではメモリ対仮想コアの比率を 16:1 とし、大規模なデータ ウェアハウス環境ではメモリ対仮想コアの比率を 32:1 にすることをお勧めします。
ポータルでのストレージ構成で SQL Server VM のマーケットプレース イメージを使用します。 これにより、お客様のワークロードに必要なサイズ、IOPS、スループットを確保するために必要な記憶域プールの適切な作成が容易になります。 Premium Storage のパフォーマンスをサポートする SQL Server VM を選択することが重要です。 詳細については、ストレージに関する記事をご覧ください。
メモリを最適化した M シリーズ VM
M シリーズは、一部の最大の SQL Server ワークロードに適した仮想コア数とメモリを提供します。
次の一覧は、M シリーズ VM の特長を示しています。
- Premium Storage、Premium Storage キャッシュ、Ultra ディスク、書き込みの高速化、高速ネットワークをサポートします。
- メモリ占有領域が大きく、ストレージ パフォーマンスに重きを置いていない、高いコンピューティング機能を必要とする SQL Server ワークロードに適しています。
Mbsv3 および Mbdsv3 シリーズ
Mbsv3 と Mbdsv3 シリーズは、高いメモリ対 CPU 比率のニーズに対応する、大規模なメモリ内データベースとワークロード向けに設計された、メモリを最適化した VM です。 このシリーズの VM は、第 4 世代 Intel® Xeon® Scalable 上に構築されており、SQL Server ワークロードのニーズを満たすメモリ サイズや vCPU 数に幅広く対応しています。 ミッション クリティカルなデータ ウェアハウス ワークロードには、Mbsv3 と Mbdsv3 シリーズの VM をお勧めします。
Mbsv3 と Mbdsv3 シリーズの VM は、高いメモリ対 CPU 比率で大規模なメモリ内データベースとワークロードをサポートしており、リレーショナル データベース サーバー、データ ウェアハウス、大量のレポート、大規模なキャッシュ、メモリ内分析に最適です。
次に示すのは、このシリーズの VM の特性です。
- Mbsv3 シリーズは、最大 176 個の仮想コアと 1,536 GiB のメモリを備え、一貫した 8:1 のメモリ対仮想コア比、650,000 IOPS、6,000 MBps のストレージ スループットを実現します。
- Mbdsv3 シリーズは、最大 176 個の仮想コアと 4 TiB のメモリを備え、650,000 IOPS、10,000 MBps のストレージ スループットを実現します。 この VM シリーズは、高性能の Ebdsv5 シリーズに対し IOPS とスループットを 50% 以上向上しています。そのため、Mbdsv3 は、どのクラウドでも最も高パフォーマンスの VM オプションの 1 つとなっています。 Mbdsv3 VM シリーズはどれも Mbsv3 VM シリーズと同様のパフォーマンス特性を備えながら、強力なローカルのエフェメラル ストレージを搭載しており、tempdb のパフォーマンス最適化、レポート作成、ミッション クリティカルな OLAP、データ ウェアハウスのワークロードに最適です。
Msv3 と Mdsv3 シリーズ
Msv3 と Mdsv3 の仮想マシンは、"中"、"高"、"非常に高い" というメモリ レベルのコンピューティング能力とメモリ機能を備えて設計されています。 これらの VM は、前世代の Mv2 VM と比較して、パフォーマンス、スケーラビリティ、障害からの回復力の面で向上しています。
このシリーズの VM の一覧を次に示します。
- Msv3 と Mdsv3 のミディアム メモリ VM: 第 4 世代 Intel® Xeon® Scalable プロセッサを搭載し、最大 4 TiB のメモリ、416 個の vCPU、130,000 IOPS、NVMe インターフェイスを使用した 4,000 MBps のリモート ストレージ スループットを実現する VM を提供します。
- Msv3/Mdsv3 High Memory VM: NVMe インターフェイスを備え、6 TiB から 16 TiB までのメモリ、最大 832 個の vCPU、最大 260,000 の IOPS と 8,000 MBps のスループットを実現する高メモリのワークロード向けに設計されています。
- Mdsv3 Very High Memory シリーズ: 第 4 世代 Intel® Xeon® Platinum 8490H (Sapphire Rapids) プロセッサを搭載し、最大 32 TiB のメモリ、1,792 個の vCPU、最大 200,000 IOPS、8,000 MBps のリモート ストレージ スループットを実現する M シリーズ ベースの仮想マシンの最大メモリ占有領域を備えています。
注意事項
SMT を無効にして、NUMA ノードあたり 64 個の仮想コアを上回る Azure VM で SQL Server を使用します。
メモリを最適化した 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 TiB の NVMe SSD があります。 つまり、このシリーズの最大の VM である L80s_v2 では、80 個の vCPU、640 BiB のメモリ、10 x 1.92 TiB の NVMe ストレージが搭載されています。 これらのすべての仮想マシンでは、メモリと仮想コアの比率が一貫して 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 の仮想マシンに関するご質問については、よくあるご質問に関するページをご覧ください。