次の方法で共有


Azure VM 上の SQL Server の VM 仮想コアのカスタマイズ

適用対象:Azure VM 上の SQL Server

この記事では、構成可能な制約付きコア (CCC) と同時マルチスレッド (SMT) 設定を無効にする機能を含む Azure VM の VM 仮想コアのカスタマイズ を使用して、Azure Virtual Machines (VM) 上の SQL Server のパフォーマンスを最適化し、ライセンス コストを削減する方法について説明します。

VM 仮想コアのカスタマイズ は、現在、Azure VM 上の SQL Server のプレビュー段階です。

概要

構成可能な制約付きコア (CCC) は、Azure VM の元の制約付き vCPU モデルに基づいて改善されます。 親仮想マシンよりもアクティブな仮想コア (vCPU とも呼ばれます) の数を細かく制御できます。 CCC を使用すると、SQL Server のお客様は VM メモリと I/O に関係なく仮想コアを割り当てることができます。 この構成により、コア ライセンスごとに大幅な節約が可能になりますが、バッファー プール、列ストア、 tempdb、バックアップ/復元スループット、ストレージ帯域幅に必要なメモリと IO ヘッドルームは維持されます。

必要に応じて、CCC をレイテンシーに敏感なワークロードに対して使用する場合、同時マルチスレッド (SMT) /ハイパースレッディング を無効にし (コアあたりのスレッド数を 1 に設定) 組み合わせることが可能です。

これらの VM カスタマイズ オプションを組み合わせることで、他の VM サイズ機能を犠牲にすることなく、ゲスト OS への CPU プレゼンテーションをきめ細かく制御できます。

元の制約付き vCPU モデル

元の 制約付き vCPU モデルは、VM の完全なコンピューティング容量を利用する必要のないワークロードのコスト効率を最適化するように設計された Azure VM の機能です。 制約付き vCPU を使用すると、元の VM サイズと同じメモリ、ストレージ、ネットワーク リソースを維持しながら、vCPU の数を減らした VM サイズを選択できます。 この機能は、コンピューティング バインドではなくメモリまたは IO を集中的に使用するアプリケーションに特に役立ちます。

たとえば、使用可能な CPU リソースの一部を使用するアプリケーションのメモリ構成が高い M シリーズ ファミリ VM をデプロイしたとします。 制約付き vCPU 機能を使用すると、同じ M シリーズ VM をデプロイできますが、アクティブな vCPU は少なくなります。 この vCPU の削減により、特に SQL Server などの仮想コアの数に基づくソフトウェア ライセンスの場合、大幅なコスト削減につながる可能性があります。

制約付き vCPU は VM サイズの選択に組み込まれており、VM の名前はコア数の減少を示します。 たとえば、VM サイズ E96-24ads_v5 には、親 E96ads_v5 VM サイズで使用できる完全な 96 個の vCPU ではなく、24 個のアクティブ vCPU があります。 引き続き 672 GB の RAM と、親仮想マシンのストレージとネットワーク パフォーマンスが保持されます。 詳細については、 制約付き vCPUS で使用可能なサイズの完全な一覧を参照してください。

制約付き vCPU は、次の場合に最適です。

  • メモリとストレージのパフォーマンスが重要ですが、CPU 使用率が低いデータベース サーバー。
  • コアごとのライセンス コストが高いアプリケーション。

制限付き vCPU では、支払う仮想コア数は少なくなりますが、親またはホスト仮想マシンのコンピューティング コストと Windows Server ライセンスの料金は引き続き課金されます。

元の制約付き vCPU モデルの主な利点と機能

次の一覧では、Azure VM 上の SQL Server に制約付き vCPU を使用する主な利点と機能について説明します。

  • 価格パフォーマンスの利点: 元の vCPU の 50% または 75% の VM サイズを選択できます。これにより、SQL Server のライセンス コストが大幅に削減されます。
  • メモリ: メモリ割り当ては親 VM 構成と同じであるため、メモリ負荷の高いワークロードは侵害されません。
  • ストレージ: ストレージのパフォーマンスは親 VM 構成と同じであるため、ストレージ集中型ワークロードは影響を受けません。
  • パフォーマンス: vCPU を減らすと、スレッドの競合を減らし、アプリケーションのニーズに合わせて CPU 使用率を調整することで、パフォーマンスを向上させることができます。

SQL Server では、 NUMA ノードあたり 64 を超える論理プロセッサを持つ構成はサポートされていません。 SQL Server 2022 CU15 以降、この制限を超えるサーバーに SQL Server をインストールしようとすると、インストールが失敗し、エラー ログにサポートされていない NUMA 構成が示されます。

元の制約付き vCPU モデルの欠点

元の制約付きコア モデルは、大幅なコスト削減と柔軟性を提供しますが、いくつかの欠点があります。

  • VM ファミリ間の一貫性のないサポート: すべての Azure VM ファミリが制約付き vCPU をサポートしているわけではありません。
  • 柔軟性の制限: 元の制約付き vCPU モデルでは、親 VM の仮想コアの 25% または 50% のみに制限され、細分性はありません。 この制限は、親 VM の完全なリソースを必要とするが、特定の少数の仮想コアのみを必要とするワークロードでは問題になります。
  • スケーリングの課題: VM のサイズが大きくなると、粒度の不足が顕著になります。 たとえば、 Standard_M416ms_v2 VM には 416 個の仮想コアが用意されており、制約付きオプション (208 仮想コア) であっても、多くの SQL Server デプロイのニーズをはるかに超える可能性があります。

構成可能な制約付きコア (CCC) で導入された機能強化

Azure VM 構成可能な制約付きコア (CCC) モデルでは、次の機能など、SQL Server VM デプロイに真の柔軟性と一貫性が導入され、元の制約付き vCPU モデルの欠点が解決されます。

  • 細かいコア選択: CCC を使用すると、事前設定された分数に制限されるのではなく、VM のアクティブな vCPU の数を指定できます。 つまり、親 VM サイズの完全なメモリ、ストレージ、I/O 帯域幅を保持したまま、サポートされている vCPU 数 (16、32、48 など) を選択できます。
  • 一貫性のある可用性: CCC は幅広い VM ファミリで利用でき、一貫性のないサポートのリスクが軽減されます。 ワークロードとライセンスのニーズに最適な VM を自信を持って選択できます。
  • ライセンスとリソース使用率の最適化: アクティブな vCPU の数を SQL Server ライセンスの権利とワークロードの要件に合わせることにより、CCC は未使用のコアの支払いを回避するのに役立ちます。これにより、より大きな VM サイズのパフォーマンス特性を完全に使用できます。
  • 顧客満足度の向上: CCC を使用することで、コストとパフォーマンスの両方を最適化する柔軟性が得られ、予期しない費用や最適でない構成の可能性が減り、SQL Server VM のデプロイに対する全体的な満足度が向上します。

CCC を使用すると、SQL Server のお客様は、Azure VM のデプロイを調整し、ライセンスの効率とリソース使用率を最大化しながら、コストと複雑さを最小限に抑えることができます。

Azure VM 上の SQL Server の CCC のベスト プラクティス

構成可能な制約付きコア (CCC) は、Azure VM 上の SQL Server に特に便利な機能です。 パフォーマンスとコストの両方に合わせてデプロイを最適化できます。

  • コアごとの SQL Server ライセンスを実際の CPU ニーズに合わせます。SQL Server ワークロードが CPU バインドではなくメモリまたは I/O バインドである場合は、メモリとディスクのスループットに対してより大きな VM サイズを選択しますが、ライセンスされたコアと一致するようにアクティブな vCPU を制限します。 この選択により、同じ VM メモリと I/O 特性を維持しながら、SQL Server のライセンス コストを削減できます。
  • 待機時間の一貫性の向上: OLTP と待機時間の影響を受けやすいデータベース パターンによっては、SMT (コアあたりのスレッド数 = 1) を 無効にすると 、重要なクエリまたは同期ワークロードの論理コア競合と末尾待機時間が短縮されます。 1 つのデプロイで SMT Off と CCC を組み合わせることができます。
  • デプロイを計画する: デプロイする前に、SQL Server ワークロードを分析して、必要な vCPU の最適な数を決定します。 CCC と SMT の設定は、VM の初期作成時またはサイズ変更操作中にのみ変更できます。 実行中の VM でこれらのオプションを変更することはできません。サイズ変更には再起動が必要です。
  • vCPU を適切に割り当てる: 値を指定する場合、アクティブな vCPU (vCPUsAvailable) の数が、選択した VM サイズの既定の vCPU 数を超えないようにする必要があります。 ハイパースレッディングを使用する VM サイズ (コアあたり 2 つのスレッド) の場合、 vCPUsAvailable の有効な値は偶数 (2、4、6 など) ですが、ハイパースレッド化されていないサイズでは 1 ずつインクリメントできます。 VM のサイズを別の互換性のあるサイズに変更した場合、CCC と SMT の設定は保持されます。 ターゲット VM サイズでこれらの機能がサポートされていない場合、サイズ変更操作はブロックされます。 Azure ハイブリッド特典をアクティブ化する場合、またはコア ライセンスごとに使用する場合は、 vCPUsAvailable を実行する ライセンスコア数 に設定します。 SQL Server では、その数の論理プロセッサのみが表示されます。 この選択により、不要な SQL コアに対して料金を支払うことなく、より大きなメモリまたは I/O VM (バッファー プールまたはスループット用) を選択できます。 Sql Server 上の タスク マネージャーsys.dm_os_sys_info を使用して、Windows 内のコア数を検証します。
  • SMT を無効にする: 一部の OLTP ワークロードでは、共有コア リソースの競合が減るため、SMT を無効にするとメリットがあります。 分析や高度に並列なワークロードなどの他のワークロードは、SMT を有効のままにすることでメリットを得ることができます。 最終的に終了する前に、代表的なロード テストを使用してワークロードの両方をテストします。
  • NUMA と MAXDOP: CCC は、基になる VM メモリまたは I/O スループットではなく、論理 CPU 数のみを変更します。 コアを制約した後の並列処理の MAXDOPコストのしきい値 を確認して、削減された CPU で最適な並列処理を確保します。 SQL Server ワークロードごとにチューニングすることで、一般的なパフォーマンスのベスト プラクティスを適用します。
  • 可用性グループとバックアップ: コアを制約しても、VM サイズのディスク スループットの権利は変更されません。 バックアップと復元、可用性グループの同期には、より大きな VM のストレージ帯域幅を引き続き使用できます。 このスループットは、アクティブ コア数が少ない、より大きなメモリまたは I/O サイズを選択するための一般的なドライバーです。
  • 追加料金なし: CCC または SMT/HT コントロールを使用するための 追加 の Azure VM コストは発生しません。VM コンピューティングの価格は、コンピューティング、メモリ、ストレージのコストを含む、選択したサイズと同じままです。 潜在的な節約は、 vCPU 数の削減を認識するコア ライセンス ソフトウェア (SQL Server など) ごとに発生します。 ライセンス条項を確認して、節約額と全体的なコストを見積もります。

SQL Server のデプロイ パターンのサンプル

次の SQL Server ワークロードデプロイ パターンの例を考えてみましょう。

  • メモリ集中型 OLTP: 高メモリの E シリーズまたは Ebdsv5 VM を選択します。 を SQL Server ライセンス (8 コアなど) と一致するように設定し、必要に応じて、待機時間が影響を受けやすいワークロードに対して SMT を無効にするようにを設定します。 この構成では、ライセンス コストを削減しながら、VM のメモリと I/O が保持されます。
  • メモリと記憶域を集中的に使用する OLAP/DW: 高いメモリとストレージ用の M シリーズ VM を選択します。 を SQL Server ライセンス (32 コアなど) と一致するように設定し、必要に応じて、待機時間が影響を受けやすいワークロードに対して SMT を無効にするようにを設定します。
  • バックアップと復元のスループット: BLOB またはマネージド ディスクに対する最大帯域幅を実現するために、ストレージ最適化 VM を選択します。 vCPUsAvailable必要な SQL コアの数に設定し、ライセンス数を減らしながら高いディスク スループットを維持します。

CCC の使い方を始める

Azure portal、Azure CLI、PowerShell、ARM テンプレートを使用して、Azure VM の CCC と SMT の設定を設定できます。 詳細については、 VM 仮想コアのカスタマイズを確認してください。

Azure VM をデプロイまたはサイズ変更した後、ゲスト オペレーティング システム内と SQL Server 内の CPU 構成を検証して、設定が正しく適用されていることを確認します。

Windows での CPU 構成の検証

タスク マネージャー (パフォーマンス → CPU) を使用して、論理プロセッサ数を確認します。

管理コマンド プロンプト内で wmic cpu get NumberOfCores,NumberOfLogicalProcessors を実行して、SMT の状態を確認します。

SQL Server での CPU 構成の検証

SELECT cpu_count, hyperthread_ratio FROM sys.dm_os_sys_info;を実行して、論理 CPU 数と SMT を確認します。

新しい CPU 数に対して 並列処理の最大度数 (MAXDOP) および 並列処理のコストしきい値 を確認して調整します。

制限事項

Azure VM 上の SQL Server に対して VM 仮想コアのカスタマイズを使用する場合は、次の制限事項を考慮してください。

  • サポートされているイメージには、Windows Server、Ubuntu、RHEL、SUSE、カスタム イメージなどのファースト パーティのイメージが含まれます。 サード パーティの Marketplace イメージはサポートされていません。 非推奨の Marketplace SQL VM Linux イメージはサポートされていません。
  • 現在、CCC は、米国中西部、北ヨーロッパ、東アジア、英国南部などの一部のリージョンで利用できます。
  • CCC/SMT は、 作成 操作または サイズ変更 操作中にのみ設定できます。 動的ランタイムの変更はサポートされていません。 サイズを変更すると再起動が発生します。

よく寄せられる質問 (FAQ)

よく寄せられる質問を次に示します。

CCC は VM のメモリまたはストレージのスループットを変更しますか?

No. CCC は、ゲスト OS に表示される vCPU の数のみを変更します。 選択した VM サイズのメモリと I/O を保持します。

ダウンタイムなしで CCC のオンとオフを切り替えることができますか?

No. VM 作成時またはサイズ変更時に CCC を有効にする必要があります。 再起動が発生します。

SQL Server はライセンスのコア数の削減を認識しますか?

Yes. SQL Server およびその他のコア ライセンスソフトウェアには、OS が受け取る vCPUsAvailable 値のみが表示されます。 ライセンス条項を確認してください。