affinity Input-Output mask サーバー構成オプション

適用対象:yesSQL Server (サポートされているすべてのバージョン)

マルチタスクを実行するために、Microsoft Windows異なるプロセッサ間でプロセス スレッドを移動する場合があります。 オペレーティング システムの観点から見て効率的ですが、このアクティビティにより、各プロセッサ キャッシュがデータで繰り返し再読み込みされるので、システムの負荷が高い場合に Microsoft SQL Server のパフォーマンスが低下する可能性があります。 このような状況では、特定のスレッドにプロセッサを割り当てることで、プロセッサの再読み込みを回避してパフォーマンスを向上できます。このようなスレッドとプロセッサ間の関連付けを "プロセッサ関係 (processor affinity)" と言います。

SQL Serverは、affinity mask (CPU affinity mask とも呼ばれる) と affinity I/O mask の 2 つのアフィニティ マスク オプションを使用して、プロセッサアフィニティをサポートします。 affinity mask オプションの詳細については、「 affinity mask サーバー構成オプション」を参照してください。 プロセッサが 33 から 64 個のサーバーに対して CPU および I/O affinity をサポートするには、 affinity64 mask サーバー構成オプション および affinity64 I/O mask サーバー構成オプション がそれぞれ必要になります。

Note

33 から 64 個までのプロセッサを搭載しているサーバーでの関係 (affinity) は、64 ビット オペレーティング システムでのみサポートされます。

affinity I/O mask オプションは、指定SQL Server CPU のサブセットにディスク I/O をバインドします。 ハイエンドな SQL Server オンライン トランザクション処理 (OLTP) 環境では、この拡張機能により、I/O を発行する SQL Server スレッドのパフォーマンスを向上できます。 この拡張機能では、個別のディスクやディスク コントローラーのハードウェア関係 (hardware affinity) はサポートされません。

affinity I/O mask の値は、マルチプロセッサ コンピューター内の CPU がディスク I/O 操作を処理SQL Serverを指定します。 このマスクはビットマップで、右端のビットによって最も順番の小さい CPU(0) が指定され、そのビットの左隣のビットによって次に順番の小さい CPU(1) が指定され、それ以降も同様に CPU が指定されます。 33 個以上のプロセッサを構成するには、 affinity I/O maskaffinity64 I/O maskの両方を設定します。

affinity I/O mask の値は、以下のとおりです。

  • 1 バイトの affinity I/O mask は、マルチプロセッサ コンピューターの最大 8 個の CPU に対応します。

  • 2 バイトの affinity I/O mask は、マルチプロセッサ コンピューターの最大 16 個の CPU に対応します。

  • 3 バイトの affinity I/O mask は、マルチプロセッサ コンピューターの最大 24 個の CPU に対応します。

  • 4 バイトの affinity I/O mask は、マルチプロセッサ コンピューターの最大 32 個の CPU に対応します。

  • 33 個以上の CPU に対応するには、最初の 32 個の CPU に 4 バイトの affinity I/O mask を構成し、残りの CPU に 4 バイトの affinity64 I/O mask を構成します。

アフィニティ I/O パターンの 1 ビットは、対応する CPU が SQL Server ディスク I/O 操作を実行する資格を示します。0 ビットは、対応する CPU に対して SQL Server ディスク I/O 操作をスケジュールする必要がない場合に指定します。 すべてのビットが 0 に設定されている場合、またはアフィニティ I/O マスクが指定されていない場合、SQL Server ディスク I/O は、SQL Server スレッドを処理できる CPU にスケジュールされます。

affinity I/O mask オプションSQL Server設定は特殊な操作なので、必要な場合にのみ使用する必要があります。 通常は、Windows 2000 または Windows 2003 の既定の関係 (affinity) で、最適なパフォーマンスが得られます。

affinity I/O mask オプションを指定する場合は、 affinity mask 構成オプションと共に使用する必要があります。 affinity I/O mask スイッチと affinity mask オプションの両方で同じ CPU を有効にしないようにしてください。 各 CPU に対応するビットは、次の 3 つの状態のうちのいずれかに設定します。

  • affinity I/O mask オプションと affinity mask オプションの両方で 0。

  • affinity I/O mask オプションで 0、 affinity mask オプションで 1。

  • affinity I/O mask オプションで 0、 affinity mask オプションで 1。

affinity I/O mask オプションは拡張オプションです。 sp_configure システム ストアド プロシージャを使用して affinity I/O mask の設定を変更するには、show advanced options を 1 に設定する必要があります。 このSQL Server affinity I/O mask オプションを再構成するには、インスタンスを再起動SQL Serverがあります。

注意事項

Windows オペレーティング システムでの CPU 関係の構成と、SQL Server での関係マスクの構成は、同時に行わないようにしてください。 この 2 つの設定は、同じ効果をねらったものであり、これらの構成間に一貫性がない場合は、予期しない結果を招く可能性があります。 SQL Server CPU アフィニティは、次のオプションを使用してsp_configure構成SQL Server。

参照

リソースの利用状況の監視 (システム モニター)
RECONFIGURE (Transact-SQL)
サーバー構成オプション (SQL Server)
sp_configure (Transact-SQL)