affinity I/O mask 選項

為了完成多重工作,Microsoft Windows 2000 與 Windows Server 2003 有時會在不同的處理器之間移動處理序執行緒。雖然從作業系統的觀點來看很有效率,但是在繁重的系統負載下,這項活動可能會降低 Microsoft SQL Server 的效能,因為每個處理器快取會重複重新載入資料。將處理器指派給特定的執行緒,可藉由去除處理器的重新載入,而在這些狀況下增進效能;執行緒與處理器之間的這種關聯,稱為處理器相似性。

SQL Server 透過兩個相似性遮罩選項支援處理器相似性:affinity mask (也稱為 CPU affinity mask) 與 affinity I/O mask。如需有關 affinity mask 選項的詳細資訊,請參閱<affinity mask 選項>。擁有 33 到 64 個處理器的 CPU 與 I/O 相似性支援需要分別另外使用 affinity64 mask 選項affinity64 I/O mask 選項

[!附註]

擁有 33 到 64 個處理器之伺服器的相似性支援只能在 64 位元的作業系統上使用。

affinity I/O mask 選項會將 SQL Server 磁碟 I/O 繫結到指定的 CPU 子集。在高階的 SQL Server 線上交易處理 (OLTP) 環境中,此延伸模組可強化 SQL Server 執行緒發行 I/O 的效能。這項增強功能並不支援個別磁碟或磁碟控制器的硬體相似性。

affinity I/O mask 的值可指定在多處理器的電腦中,有哪些 CPU 適合處理 SQL Server 磁碟 I/O 作業。遮罩是一種點陣圖,其中最右邊的位元會指定最低順位 CPU(0),緊鄰其左側的位元則指定次低順位 CPU(1),依此類推。若要設定 32 個以上的處理器,請同時設定 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。

  • 若要處理 32 個以上的 CPU,請針對前 32 個 CPU 設定一個四位元組的 affinity I/O mask,並針對剩餘的 CPU 設定最多四位元組的 affinity64 I/O mask

相似性 I/O 模式中的 1 位元,會指定對應的 CPU 適合執行 SQL Server 磁碟 I/O 作業;0 位元則指定不要為對應的 CPU 排程任何 SQL Server 磁碟 I/O 作業。若所有的位元都設為零,或未指定 affinity I/O mask,SQL Server 磁碟 I/O 會排程給所有適合處理 SQL Server 執行緒的 CPU。

因為設定 SQL Serveraffinity I/O mask 選項是專門的作業,因此只有在必要時才使用。在大部份情況下,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 系統預存程序來變更設定,只有當 show advanced options 設為 1 時,才能變更 affinity I/O mask。在 SQL Server 中,重新設定 affinity I/O mask 選項需要重新啟動 SQL Server 執行個體。

警告注意事項注意

不要在 Windows 作業系統中設定 CPU 相似性,然後又在 SQL Server 中設定相似性遮罩。這些設定嘗試達到相同的結果,如果組態不一致,可能會有無法預期的結果。設定 SQL Server CPU 相似性時,最好使用 SQL Server 中的 sp_configure 選項。