共用方式為


affinity Input-Output mask 伺服器組態選項

若要執行多任務處理,Microsoft Windows 2000 和 Windows Server 2003 有時會在不同的處理器之間移動進程線程。 雖然從作系統的觀點來看有效率,但這項活動可能會降低在大量系統負載下Microsoft SQL Server 效能,因為每個處理器快取都會重複重載數據。 將處理器指派給特定線程可以藉由消除處理器重載來改善這些條件下的效能;線程與處理器之間的這類關聯稱為處理器親和性。

SQL Server 透過兩個親和性遮罩選項支援處理器親和性:affinity mask(也稱為 CPU 親和性遮罩)和 affinity I/O mask。 如需 affinity mask 選項的詳細資訊,請參閱 affinity mask 伺服器組態選項。 CPU 和 I/O 親和性支援具有 33 到 64 個處理器的伺服器,需另外使用 affinity64 遮罩伺服器組態選項affinity64 Input-Output 遮罩伺服器組態選項

備註

33 到 64 處理器的伺服器親和性支援僅適用於 64 位作系統。

affinity I/O mask 選項會將 SQL Server 磁碟 I/O 系結至指定的 CPU 子集。 在高端 SQL Server 在線事務處理 (OLTP) 環境中,此延伸模組可以增強發出 I/O 的 SQL Server 線程效能。 這項增強功能不支持個別磁碟或磁碟控制器的硬體親和性。

affinity I/O mask 的值會指定多處理器計算機中哪些 CPU 有資格處理 SQL Server 磁碟 I/O 作業。 遮罩是位圖,其中最右邊的位指定最低階 CPU(0),其左邊的位指定接下來的最低階 CPU(1),依此類推。 若要設定 32 個以上的處理器,請同時設定 affinity I/O maskaffinity64 I/O mask

親和性 I/O 遮罩的值如下所示:

  • 在多處理器電腦中,1 個字節的親和性 I/O 遮罩可涵蓋最多 8 個 CPU。

  • 在多處理器電腦中,一個 2 字節的I/O 親和性遮罩最多可覆蓋 16 個 CPU。

  • 在多處理器計算機中,3 字節的親和 I/O 掩碼最多可涵蓋 24 個 CPU。

  • 多處理器電腦中的親和性 I/O 遮罩,4 位元組大小,可以涵蓋最多 32 個 CPU。

  • 若要涵蓋超過 32 個 CPU,請為前 32 個 CPU 設定四位元組 親和性 I/O 遮罩 ,並為其餘 CPU 設定最多 4 位元組 affinity64 I/O 遮罩

同質 I/O 模式中的 1 位指定對應的 CPU 符合執行 SQL Server 磁碟 I/O 作業的資格;0 位指定不會排程對應CPU的SQL Server磁碟 I/O 作業。 當所有位元都設為零,或未指定 親和性 I/O 遮罩 時,SQL Server 磁碟 I/O 會排程到有資格處理 SQL Server 執行緒的任何 CPU。

因為設定 SQL Server 親和性 I/O 遮罩 選項是特製化作業,所以只有在需要時才使用。 在大部分情況下,Windows 2000 或 Windows Server 2003 預設親和性可提供最佳效能。

指定 affinity I/O mask 選項時,您必須將它與 affinity mask 組態選項搭配使用。 請勿在 affinity I/O mask 參數和 affinity mask 選項中啟用相同的 CPU。 對應至每個 CPU 的位元應為下列三種狀態之一:其中之一:

  • affinity I/O mask 選項和 affinity mask 選項中皆為 0。

  • affinity I/O mask 選項中是 1,affinity mask 選項中是 0。

  • affinity I/O mask 選項中,為 0;在 affinity mask 選項中,為 1。

affinity I/O mask 選項是進階選項。 如果您使用sp_configure系統預存程式來變更設定,則只有在顯示進階選項設定為 1 時,才能變更親和性 I/O 遮罩。 在 SQL Server 中,重新設定 affinity I/O mask 選項需要重新啟動 SQL Server 實例。

謹慎

請勿在 Windows 作業系統中設定 CPU 親和性,也不要在 SQL Server 中設定親和性遮罩。 這些設定嘗試達到相同的結果,如果組態不一致,可能會有無法預期的結果。 SQL Server CPU 親和性最適合使用 sp_configure SQL Server 中的 選項進行設定。

另請參閱

監視資源使用狀況 (系統監視器)
RECONFIGURE (Transact-SQL)
伺服器組態選項 (SQL Server)
sp_configure (Transact-SQL)