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

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

マルチタスクを実行するため、 MicrosoftMicrosoft Windows では、プロセス スレッドが別のプロセッサに移動される場合があります。To carry out multitasking, MicrosoftMicrosoft Windows sometimes move process threads among different processors. オペレーティング システムにとっては効率的であっても、この操作で各プロセッサのキャッシュに繰り返しデータが再読み込みされるため、システムの負荷が高くなり、 MicrosoftMicrosoft SQL ServerSQL Server のパフォーマンスが低下する場合があります。Although efficient from an operating system point of view, this activity can reduce MicrosoftMicrosoft SQL ServerSQL Server performance under heavy system loads, as each processor cache is repeatedly reloaded with data. このような状況では、特定のスレッドにプロセッサを割り当てることで、プロセッサの再読み込みを回避してパフォーマンスを向上できます。このようなスレッドとプロセッサ間の関連付けを "プロセッサ関係 (processor affinity)" と言います。Assigning processors to specific threads can improve performance under these conditions by eliminating processor reloads; such an association between a thread and a processor is called processor affinity.

SQL ServerSQL Server では、 affinity mask (別名 CPU affinity mask) と affinity I/O maskの 2 つの affinity mask オプションにより、プロセッサ関係をサポートします。supports processor affinity by means of two affinity mask options: affinity mask (also known as CPU affinity mask) and affinity I/O mask. affinity mask オプションの詳細については、「 affinity mask サーバー構成オプション」を参照してください。For more information on the affinity mask option, see affinity mask Server Configuration Option. プロセッサが 33 から 64 個のサーバーに対して CPU および I/O affinity をサポートするには、 affinity64 mask サーバー構成オプション および affinity64 I/O mask サーバー構成オプション がそれぞれ必要になります。CPU and I/O affinity support for servers with 33 to 64 processors requires the additional use of the affinity64 mask Server Configuration Option and affinity64 Input-Output mask Server Configuration Option respectively.

注意

33 から 64 個までのプロセッサを搭載しているサーバーでの関係 (affinity) は、64 ビット オペレーティング システムでのみサポートされます。Affinity support for servers with 33 to 64 processors is only available on 64-bit operating systems.

affinity I/O mask オプションでは、 SQL ServerSQL Server のディスク I/O が、指定した CPU のサブセットに関連付けられます。The affinity I/O mask option binds SQL ServerSQL Server disk I/O to a specified subset of CPUs. ハイエンドな SQL ServerSQL Server オンライン トランザクション処理 (OLTP) 環境では、この拡張機能により、I/O を発行する SQL ServerSQL Server スレッドのパフォーマンスを向上できます。In high-end SQL ServerSQL Server online transactional processing (OLTP) environments, this extension can enhance the performance of SQL ServerSQL Server threads issuing I/Os. この拡張機能では、個別のディスクやディスク コントローラーのハードウェア関係 (hardware affinity) はサポートされません。This enhancement does not support hardware affinity for individual disks or disk controllers.

マルチプロセッサ コンピューターでは、 affinity I/O mask の値により、 SQL ServerSQL Server のディスク I/O 操作を処理できる CPU が指定されます。The value for affinity I/O mask specifies which CPUs in a multiprocessor computer are eligible to process SQL ServerSQL Server disk I/O operations. このマスクはビットマップで、右端のビットによって最も順番の小さい CPU(0) が指定され、そのビットの左隣のビットによって次に順番の小さい CPU(1) が指定され、それ以降も同様に CPU が指定されます。The mask is a bitmap in which the rightmost bit specifies the lowest-order CPU(0), the bit to its immediate left specifies the next-lowest-order CPU(1), and so on. 33 個以上のプロセッサを構成するには、 affinity I/O maskaffinity64 I/O maskの両方を設定します。To configure more than 32 processors, set both the affinity I/O mask and the affinity64 I/O mask.

affinity I/O mask の値は、以下のとおりです。The values for affinity I/O mask are as follows:

  • 1 バイトの affinity I/O mask は、マルチプロセッサ コンピューターの最大 8 個の CPU に対応します。A 1-byte affinity I/O mask covers up to 8 CPUs in a multiprocessor computer.

  • 2 バイトの affinity I/O mask は、マルチプロセッサ コンピューターの最大 16 個の CPU に対応します。A 2-byte affinity I/O mask covers up to 16 CPUs in a multiprocessor computer.

  • 3 バイトの affinity I/O mask は、マルチプロセッサ コンピューターの最大 24 個の CPU に対応します。A 3-byte affinity I/O mask covers up to 24 CPUs in a multiprocessor computer.

  • 4 バイトの affinity I/O mask は、マルチプロセッサ コンピューターの最大 32 個の CPU に対応します。A 4-byte affinity I/O mask covers up to 32 CPUs in a multiprocessor computer.

  • 33 個以上の CPU に対応するには、最初の 32 個の CPU に 4 バイトの affinity I/O mask を構成し、残りの CPU に 4 バイトの affinity64 I/O mask を構成します。To cover more than 32 CPUs, configure a four-byte affinity I/O mask for the first 32 CPUs and up to a four-byte affinity64 I/O mask for the remaining CPUs.

affinity I/O パターンで 1 が設定されているビットは、対応する CPU で SQL ServerSQL Server のディスク I/O 操作を実行できることを示します。また、0 が設定されているビットは、対応する CPU に SQL ServerSQL Server のディスク I/O 操作のスケジュールを設定できないことを示します。A 1 bit in the affinity I/O pattern specifies that the corresponding CPU is eligible to perform SQL ServerSQL Server disk I/O operations; a 0 bit specifies that no SQL ServerSQL Server disk I/O operations should be scheduled for the corresponding CPU. すべてのビットがゼロに設定されているか、 affinity I/O mask が指定されていない場合、 SQL ServerSQL Server のディスク I/O は、 SQL ServerSQL Server のスレッドを処理できるすべての CPU にスケジュール設定されます。When all bits are set to zero, or affinity I/O mask is not specified, SQL ServerSQL Server disk I/O is scheduled to any of the CPUs eligible to process SQL ServerSQL Server threads.

SQL ServerSQL Server affinity I/O mask オプションの設定は特殊な操作なので、特に必要な場合にのみこのオプションを使用することをお勧めします。Because setting the SQL ServerSQL Server affinity I/O mask option is a specialized operation, it should be used only when necessary. 通常は、Windows 2000 または Windows 2003 の既定の関係 (affinity) で、最適なパフォーマンスが得られます。In most cases, the Windows 2000 or Windows Server 2003 default affinity provides the best performance.

affinity I/O mask オプションを指定する場合は、 affinity mask 構成オプションと共に使用する必要があります。When specifying the affinity I/O mask option, you must use it with the affinity mask configuration option. affinity I/O mask スイッチと affinity mask オプションの両方で同じ CPU を有効にしないようにしてください。Do not enable the same CPU in both the affinity I/O mask switch and the affinity mask option. 各 CPU に対応するビットは、次の 3 つの状態のうちのいずれかに設定します。The bits corresponding to each CPU should be in one of the following three states:

  • affinity I/O mask オプションと affinity mask オプションの両方で 0。0 in both the affinity I/O mask option and the affinity mask option.

  • affinity I/O mask オプションで 0、 affinity mask オプションで 1。1 in the affinity I/O mask option and 0 in the affinity mask option.

  • affinity I/O mask オプションで 0、 affinity mask オプションで 1。0 in the affinity I/O mask option and 1 in the affinity mask option.

affinity I/O mask オプションは拡張オプションです。The affinity I/O mask option is an advanced option. sp_configure システム ストアド プロシージャを使用して affinity I/O mask の設定を変更するには、show advanced options を 1 に設定する必要があります。If you are using the sp_configure system stored procedure to change the setting, you can change affinity I/O mask only when show advanced options is set to 1. SQL ServerSQL Server では、affinity I/O maskSQL ServerSQL Server オプションを再構成した場合、 のインスタンスを再起動する必要があります。In SQL ServerSQL Server, reconfiguring the affinity I/O mask option requires a restart of the SQL ServerSQL Server instance.

注意事項

Windows オペレーティング システムでの CPU 関係の構成と、SQL ServerSQL Server での関係マスクの構成は、同時に行わないようにしてください。Do not configure CPU affinity in the Windows operating system and also configure the affinity mask in SQL ServerSQL Server. この 2 つの設定は、同じ効果をねらったものであり、これらの構成間に一貫性がない場合は、予期しない結果を招く可能性があります。These settings are attempting to achieve the same result, and if the configurations are inconsistent, you may have unpredictable results. SQL ServerSQL Server CPU 関係を構成する場合は、 sp_configure SQL ServerSQL Serverオプションを使用する方法が最適です。CPU affinity is best configured using the sp_configure option in SQL ServerSQL Server.

参照See Also

リソースの利用状況の監視 (System Monitor) Monitor Resource Usage (System Monitor)
RECONFIGURE (Transact-SQL) RECONFIGURE (Transact-SQL)
サーバー構成オプション (SQL Server) Server Configuration Options (SQL Server)
sp_configure (Transact-SQL)sp_configure (Transact-SQL)