NUMA シナリオ

多くの CPU が搭載されたコンピュータでは、専用メモリと CPU を組み合わせることで、NUMA (nonuniform memory access) ハードウェアはパフォーマンスを大幅に向上できます。このトピックでは、特定のシナリオでパフォーマンスがさらに向上する NUMA、CPU 関係、および接続関係の構成についていくつか説明します。次に、このような構成に影響を与える設定を示します。

効果的なシナリオ

NUMA を使用すると、次のシナリオが頻繁に検出されます。

A. NUMA 関係に対してポートがありません。

これは、ハードウェア NUMA と SQL Server の単一インスタンスが存在するコンピュータでは既定の状況です。すべてのトラフィックは、1 つのポートを経由して入り、使用可能なすべての NUMA ノードにラウンド ロビン方式で分散されます。NUMA を使用すると、メモリと CPU アクセスの局所性が向上し、I/O スレッドとレイジー ライタ スレッドの数が増加します。一度確立された接続の範囲は、そのノードに設定されます。これにより、NUMA ノード間で自動的に負荷が分散されます。クライアント アプリケーションは 1 つのポートだけに接続でき、簡単に配置できます。

接続で任意の NUMA ノードを使用

B. 優先度の高いアプリケーションのパフォーマンスを向上させるため、1 つのポートを複数のノードに関連付けます。

1 つのポートを複数のハードウェア NUMA ノードに関係付けて、優先度の高い主要アプリケーションにサービスを提供します。2 つ目のポートは別のハードウェア NUMA ノードに関係付けて、2 つ目の補助アプリケーションにサービスを提供します。2 つのアプリケーションのメモリと CPU リソースは不均衡な状態で固定されます。主要アプリケーションには、補助アプリケーションの 3 倍のローカル メモリと CPU リソースが割り当てられます。データベース エンジンの 2 つ目のインスタンスを補助アプリケーションにし、同じデータベース エンジンのインスタンス (または同じデータベース) の重要度の低い機能を実行させることができます。この結果、優先される接続に追加のリソースを割り当てることにより、優先スレッド実行の形式が実現します。

1 つのポートから複数の NUMA ノードに接続

C. 複数のポートを複数のノードに関連付けます。

複数のポートを、同じ NUMA ノードにマッピングできます。これにより、さまざまなポートに異なる権限を構成できるようになります。たとえば、対応する TCP エンドポイントでの権限を制御することにより、ポート経由で行われるアクセスを厳密に制限できます。この例の場合、ポート 1450 はイントラネットで広範囲に使用可能です。ポート 1433 は、ファイアウォール経由でインターネットに開かれていますが、アクセスは厳密に制限されています。どちらのポートも、NUMA の利点を同じくらい最大限に活用しています。

複数のポートから使用可能なすべての NUMA ノードに接続