次の方法で共有


SQL Server のエディション別の計算容量制限

適用対象: SQL Server

この記事では、SQL Server の各エディションの計算容量の制限と、同時マルチスレッド (SMT) プロセッサを持つ物理環境と仮想化環境での違いについて説明します。 Intel CPU では、SMT は Hyper-Threading と呼ばれます。

概要

コンピューティング容量の制限へのマッピングを示す図。

このテーブルでは、前の図の表記について説明します。

説明
0..1 0 個または 1 個
1 1 個
1..* 1 個以上
0..* 0 個以上
1..2 1 つまたは 2 つ

さらに詳しく説明します。

  • 仮想マシン (VM) には、1 個以上の仮想プロセッサが含まれます。
  • 1 個の仮想マシンには、1 個以上の仮想プロセッサが割り当てられます。
  • 0 個または 1 個の仮想プロセッサは、0 個以上の論理プロセッサにマップされます。 次に、仮想プロセッサの論理プロセッサに対するマッピングを示します。
    • 1 対 0 の場合: ゲスト オペレーティング システムで使用されないアンバウンド論理プロセッサを表します。
    • 1 対多の場合: オーバーコミットを表します。
    • 0 対多の場合: ホスト システム上に仮想マシンがないことを表します。 そのため、VM は論理プロセッサを使用しません。
  • ソケットは、0 個以上のコアにマップされます。 次に、ソケットとコアのマッピングを示します。
    • 1 対 0 の場合: 空のソケットを表します。 チップはインストールされていません。
    • 1 対 1 の場合: ソケットに取り付けられているシングルコア チップを表します。 このマッピングは最近ではまれです。
    • 1 対多の場合: ソケットに取り付けられているマルチコア チップを表します。 通常、この値は 2、4、8 です。
  • コアは、1 個または 2 個の論理プロセッサにマップされます。 次に、コアの論理プロセッサに対するマッピングを示します。
    • 1 対 1: SMT がオフ。
    • 1 から 2: SMT がオン。

次の定義は、このトピック全体で使用される用語に適用されます。

  • スレッドまたは論理プロセッサは、 SQL Server、オペレーティング システム、アプリケーション、ドライバーでは 1 個の論理コンピューティング エンジンとして見なされます。

  • コアは、プロセッサ単位です。 1 個以上の論理プロセッサで構成されます。

  • 物理プロセッサは、1 個以上のコアで構成されます。 物理プロセッサは、プロセッサ パッケージまたはソケットと同じです。

SQL Server 2022 累積的な更新プログラム 11 の破壊的変更

SQL Server では、NUMA ノードあたりの論理プロセッサの数が 64 に制限されます。 NUMA ノードあたり 64 を超える論理プロセッサがあるサーバーでは、BIOS / ファームウェア構成を使用して、オペレーティング システムに表示される物理ソケットあたりの NUMA ノード数を最大 64 個の論理プロセッサに制限するように変更できます。

NUMA ノードあたりの論理コアの数を減らすことを検討できます。 詳細については、「NUMA ノードあたりの論理コア数を削減する」を参照してください。

解説

1 個以上の物理プロセッサを搭載したシステムや、複数のコアまたは SMT を持つ物理プロセッサを搭載したシステムでは、オペレーティング システムで複数のタスクを同時に実行できます。 各実行スレッドは論理プロセッサとして表示されます。 たとえば、SMT が有効になっているクアッド コア プロセッサがお使いのコンピューターに 2 個搭載されていて、それぞれのコアにスレッドが 2 個ある場合、論理プロセッサの数は次のように 16 個になります: プロセッサ数が 2、プロセッサごとのコア数が 4、コアごとのスレッド数が 2 (2 x 4 x 2 = 16) 次の点に注意してください。

  • SMT コアの単一スレッドの論理プロセッサの計算容量は、SMT が無効になっている同じコアの論理プロセッサの計算容量よりも小さくなります。

  • SMT コアの 2 個の論理プロセッサの計算容量は、SMT が無効になっている同じコアの計算容量よりも大きくなります。

SQL Server の各エディションには、次の 2 つの計算容量制限があります。

  • ソケット (物理プロセッサまたはプロセッサ パッケージ) の最大数

  • オペレーティング システムによって報告されたコアの最大数

これらの制限は、 SQL Serverの 1 つのインスタンスに適用され、 1 つのインスタンスが使用する最大計算容量を表します。 インスタンスが配置される可能性があるサーバーは制限を受けません。 実際、SQL Server の複数のインスタンスを同じ物理サーバーに配置することは、以下に示す容量制限よりも多くのソケットまたはコアを搭載した物理サーバーの計算容量を使用するための効果的な方法です。

次の表に、 SQL Serverの各エディションの 1 つのインスタンスに適用される計算容量制限を示します。

SQL Server エディション 1 つのインスタンスの最大計算容量 (SQL Server データベース エンジン) 1 つのインスタンスの最大計算容量 (AS、RS)
Enterprise Edition:コアベース ライセンス 1 オペレーティング システムの最大容量 オペレーティング システムの最大容量
Developer オペレーティング システムの最大容量 オペレーティング システムの最大容量
Standard 4 ソケットまたは 24 コアのいずれか小さいほうに制限 4 ソケットまたは 24 コアのいずれか小さいほうに制限
Express 1 ソケットまたは 4 コアのいずれか小さいほうに制限 1 ソケットまたは 4 コアのいずれか小さいほうに制限

1 Enterprise Edition (サーバーおよびクライアント アクセス ライセンス (CAL)付き) のライセンスは、SQL Server インスタンスあたり 20 コアに制限されています。 (このライセンスは新しい使用許諾契約では使用できません。)コアベースのサーバー ライセンス モデルでは、制限はありません。

仮想環境では、計算容量制限はコアではなく論理プロセッサの数に基づいています。 プロセッサのアーキテクチャが、ゲスト アプリケーションに表示されないためです。

たとえば、クアッド コア プロセッサが搭載された 4 個のソケットと、コアごとに 2 個の SMT スレッドを有効にする機能を備えたプロセッサには、SMT が有効になっている論理プロセッサが 32 個あります。 しかし、SMT が無効になっている論理プロセッサは 16 個しかありません。 これらの論理プロセッサは、サーバー上の仮想マシンにマップすることができます。 マップした論理プロセッサに対する仮想マシンの計算負荷がホスト サーバーの物理プロセッサの実行スレッドにマップされます。

仮想プロセッサあたりのパフォーマンスが重要な場合は、SMT を無効にすることができます。 SMT の構成は、BIOS のセットアップ中にプロセッサの BIOS 設定で行うことができます。ただし、これは通常、サーバーを対象とした操作であり、サーバー上で実行されているすべてのワークロードに影響します。 したがって、仮想化された環境で実行されるワークロードを、物理オペレーティング システム環境で SMT によるパフォーマンス向上の恩恵を受けるワークロードから切り離すと良い結果が得られる場合があります。

NUMA ノードあたりの論理コア数を削減する

仮想マシン (Azure VM を含む) またはベア メタル SQL Server インスタンス上の NUMA ノードあたりの論理コア数を減らすことができます。

仮想マシンで SMT を無効にする

SQL Server では、NUMA ノードあたりサポートされる制限である 64 個の論理コアがあります。 場合によっては、Azure Mv3 シリーズの VM がこの制限を超える可能性があるため、SQL Server の起動を妨げるか、パフォーマンスが低下した状態で実行できます。 SMT を無効にするには、wmicレジストリ エディター (reg.exe) を使用して次の変更を行います。 レジストリを編集する前に、必ずバックアップしてください。

  1. 論理コアの数を確認します。 比率が 2:1 (論理コア数がコア数の 2 倍) の場合、SMT が有効になります。

    wmic CPU Get NumberOfCores,NumberOfLogicalProcessors /Format:List
    
  2. 次の 2 つのレジストリ変更で SMT を無効にしてから、VM を再起動します。

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8264 /f
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f
    
  3. 論理コアの数をもう一度確認します。 論理コアの数は、コアの数と一致する必要があります。

    wmic CPU Get NumberOfCores,NumberOfLogicalProcessors /Format:List
    

ベア メタル インスタンスの論理コア数を減らす

次の表では、SQL Server のベア メタル インスタンスの論理コア数を減らす方法について説明します。

Intel CPU では、以前は Cluster-on-Die (CoD) と呼ばれるサブ NUMA クラスタリング (SNC) を有効にして、1 つの物理ソケット内に 2 つの NUMA ドメインを作成できます。

構成設定 説明
SNC 無効 (既定) サブ NUMA クラスタリングを無効にします。
SNC 有効 サブ NUMA クラスタリングを有効にします。

AMD CPUでは、ソケットごとのさまざまなノード (NPS) オプションを有効にすることができます。

構成設定 説明
NPS0 デュアル ソケット システムでは、NUMA は単一のノードとして表示され、すべてのメモリ チャンネルがノード間でインタリーブされます。
NPS1 (既定) この構成では、ソケットごとに 1 つの NUMA ノードが表示されます。
NPS2 この構成では、SNC と同様に、ソケットごとに 2 つの NUMA ノードが表示されます。
NPS4 この構成では、ソケットごとに 4 つの NUMA ノードが表示されます。

ヘルプの参照

SQL ドキュメントへの投稿

SQL コンテンツを自分で編集できることはご存じですか。 これにより、ドキュメントが改善されるだけでなく、ページの共同作成者としてもクレジットされます。

詳細については、「SQL Server のドキュメントに投稿する方法」を参照してください。