Sql-Server-2005

解決關聯遮罩和 I/O 關聯遮罩之間的衝突?

  • January 8, 2022

我在我們的一台 SQL Server 機器上執行了這個:

EXEC sp_configure 'show advanced options', 1

然後執行RECONFIGURE。這向我顯示了以下錯誤消息:

指定的關聯遮罩與指定的 IO 關聯遮罩衝突。使用覆蓋選項強制執行此配置。

通過執行RECONFIGURE WITH OVERRIDE我確實可以強製配置。但這並不是錯誤消息中提到的衝突的解決方案。

中的值sp_configure如下:

name                 minimum        maximum       config_value   run_value
affinity I/O mask    -2147483648    2147483647    126            126
affinity mask        -2147483648    2147483647    126            126

我在這裡找到了一些解釋,但這基本上只是說“不應該有衝突”,沒有關於如何解決它。有知識的人可以向我解釋這個錯誤消息的實際含義以及我應該如何/是否應該嘗試解決它?

2012 年 12 月 12 日更新

我們找不到為 和 設置衝突值的任何affinity I/O mask原因affinity mask。我將它們改回預設值,兩者都為 0。重新配置後affinity mask立即設置為0,affinity I/O mask顯然需要重新啟動實例。

SQL Server 的“關聯遮罩”和“關聯 I/O 遮罩”配置值不應衝突。如果您選擇為 SQL Server 工作執行緒調度和 I/O 處理關聯處理器,則性能可能會受到影響。

上述語句的意思是:

不要配置在 Worker 和 I/O 遮罩中都設置了處理器!

它在文件中進行了說明,並且通過錯誤消息和指定WITH OVERRIDE強制更改的要求來防止輸入錯誤的嘗試。那是你警告可能發生不好的事情。

消息 5834,級別 16,狀態 1,行 1 指定的關聯遮罩與指定的 IO 關聯遮罩衝突。使用覆蓋選項強制執行此配置。

IO 關聯屏蔽是一種很少使用的優化,它將 IO 完成活動解除安裝到專用 CPU。設置後,將創建一個隱藏調度程序,僅處理該實例的 IO 操作。如果您配置相同的 CPU 和 IO 遮罩,兩個調度程序將爭奪 CPU 週期並導致混亂。

您設置的遮罩正在創建1111110為兩者指定的場景。

如果您的意圖是將 CPU 專用於共享伺服器上的特定實例的更常見要求,請僅使用 CPU 關聯遮罩並將 IO 遮罩保留為 0(禁用)。

我只遇到過一次配置錯誤且匹配遮罩的伺服器。我被放在它前面是因為日誌突然開始填滿我們都害怕看到的消息:

I/O 請求需要超過 15 秒才能完成歸檔…

重置 IO 遮罩並重新啟動後,伺服器表現完美,再也沒有出現上述錯誤。

有用的參考資料:

引用自:https://dba.stackexchange.com/questions/30157