ソフト NUMA を使用するように SQL Server を構成する方法
新規 : 2005 年 12 月 5 日
ソフト NUMA (software non-uniform memory access) を使用するように SQL Server を構成するには、レジストリを編集してノード構成 affinity mask を追加する必要があります。ソフト NUMA マスクは、バイナリまたは DWORD (16 進数または 10 進数) レジストリ エントリとして記述できます。ソフト NUMA を構成するには、データベース エンジンを再起動する必要があります。ソフトウェア NUMA を構成する前に、「Non-Uniform Memory Access について」と「SQL Server 2005 での NUMA のサポート状況」を参照してください。
レジストリを誤って編集すると、システムに重大な障害が発生する場合があります。レジストリを変更する前に、コンピュータ上のすべての重要なデータをバックアップしてください。
この例では、8 個の CPU が搭載されたコンピュータにハードウェア NUMA がありません。3 つのソフト NUMA ノードが構成されています。データベース エンジン インスタンス A は、CPU 1 から 4 を使用するように構成されています。データベース エンジンの 2 つ目のインスタンスがインストールされており、CPU 5 から 8 を使用するように構成されています。この例は、次のように視覚的に表されます。
CPUs 1 2 3 4 5 6 7 8
Soft-NUMA <-N0--><-N1-><----N2---->
SQL Server <instance A ><instance B>
非常に多くの I/O が発生するインスタンス A には、2 つの I/O スレッドと 2 つのレイジー ライタ スレッドが存在するようになります。一方、プロセッサに負荷が集中する操作を実行するインスタンス B には、1 つの I/O スレッドと 1 つのレイジー ライタ スレッドしかありません。異なる量のメモリをこれらのインスタンスに割り当てることができますが、ハードウェア NUMA とは異なり、どちらもオペレーティング システムの同じメモリ ブロックからメモリを受け取るのでメモリおよびプロセッサ間の関係はありません。
CPU affinity mask の設定
インスタンス A で次のステートメントを実行し、CPU affinity mask を設定して CPU 1、2、3、および 4 を使用するように構成します。
sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'affinity mask', 15; RECONFIGURE; GO
インスタンス B で次のステートメントを実行し、CPU affinity mask を設定して CPU 5、6、7、および 8 を使用するように構成します。
sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'affinity mask', 240; RECONFIGURE; GO
メモ : |
---|
この例の affinity mask 値は、32 ビット オペレーティング システムが実行されているコンピュータに適用されます。 |
CPU へのソフト NUMA ノードのマッピング
- レジストリ エディタ プログラム (regedit.exe) を使用して、次の 2 つのレジストリ キーを追加し、ソフト NUMA ノード 0 を CPU 1 および 2 に、ソフト NUMA ノード 1 を CPU 3 および 4 に、ソフト NUMA ノード 2 を CPU 5、6、7、および 8 にマッピングします。
キー | 種類 | 値の名前 | 値データ |
---|---|---|---|
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node0 |
DWORD |
CPUMask |
0x03 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node1 |
DWORD |
CPUMask |
0x0c |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node2 |
DWORD |
CPUMask |
0xf0 |
参照
処理手順
NUMA ノードに TCP/IP ポートをマッピングする方法