解決關聯遮罩和 I/O 關聯遮罩之間的衝突?
我在我們的一台 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 遮罩並重新啟動後,伺服器表現完美,再也沒有出現上述錯誤。
有用的參考資料: