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 個の論理プロセッサに制限するように変更できます。

SMT の無効化を検討するのもよいでしょう。 Intel CPU では、SMT は Hyper-Threading と呼ばれます。

解説

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 によるパフォーマンス向上の恩恵を受けるワークロードから切り離すと良い結果が得られる場合があります。

ヘルプの参照

SQL ドキュメントへの投稿

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

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