NUMA を使用すると、次のシナリオが頻繁に検出されます。
A. NUMA 関係に対してポートがありません。
これは、ハードウェア NUMA と SQL Server の単一インスタンスが存在するコンピュータでは既定の状況です。すべてのトラフィックは、1 つのポートを経由して入り、使用可能なすべての NUMA ノードにラウンド ロビン方式で分散されます。NUMA を使用すると、メモリと CPU アクセスの局所性が向上し、I/O スレッドとレイジー ライタ スレッドの数が増加します。一度確立された接続の範囲は、そのノードに設定されます。これにより、NUMA ノード間で自動的に負荷が分散されます。クライアント アプリケーションは 1 つのポートだけに接続でき、簡単に配置できます。
B. 優先度の高いアプリケーションのパフォーマンスを向上させるため、1 つのポートを複数のノードに関連付けます。
1 つのポートを複数のハードウェア NUMA ノードに関係付けて、優先度の高い主要アプリケーションにサービスを提供します。2 つ目のポートは別のハードウェア NUMA ノードに関係付けて、2 つ目の補助アプリケーションにサービスを提供します。2 つのアプリケーションのメモリと CPU リソースは不均衡な状態で固定されます。主要アプリケーションには、補助アプリケーションの 3 倍のローカル メモリと CPU リソースが割り当てられます。データベース エンジンの 2 つ目のインスタンスを補助アプリケーションにし、同じデータベース エンジンのインスタンス (または同じデータベース) の重要度の低い機能を実行させることができます。この結果、優先される接続に追加のリソースを割り当てることにより、優先スレッド実行の形式が実現します。
C. 複数のポートを複数のノードに関連付けます。
複数のポートを、同じ NUMA ノードにマッピングできます。これにより、さまざまなポートに異なる権限を構成できるようになります。たとえば、対応する TCP エンドポイントでの権限を制御することにより、ポート経由で行われるアクセスを厳密に制限できます。この例の場合、ポート 1450 はイントラネットで広範囲に使用可能です。ポート 1433 は、ファイアウォール経由でインターネットに開かれていますが、アクセスは厳密に制限されています。どちらのポートも、NUMA の利点を同じくらい最大限に活用しています。