Sql-Server

CPU 調度程序離線

  • August 1, 2018

我登錄到一個新的客戶端系統並執行 sp_blitz 看看發生了什麼。它報告說“ CPU Schedulers Offline ”對我來說是一個新的。

由於關聯屏蔽或許可問題,SQL Server 無法訪問某些 CPU 核心。

很公平,我執行基本查詢

SELECT
   DOS.is_online
,   DOS.status
,   DOS.*
FROM
   sys.dm_os_schedulers AS DOS
ORDER BY
   1;

報告說我有 8 個設置為離線可見,43 個設置為線上。據我所知,這個客戶端上沒有人會故意設置任何 CPU 親和性。

我決定看看能不能解開它。當我查看屬性視窗時,我看到 40 個處理器可用,但沒有一個處理器設置為具有親和力。

在此處輸入圖像描述

為什麼在 is_online 為 true 的 dm_os_schedulers 中有 40 個顯示但 43 個條目似乎也很奇怪。8 個離線的 cpu_id 是 32 到 39。

sys.configurations 似乎與未明確啟用的親和力一致

name                 value  value_in_use  description
affinity I/O mask    0      0             affinity I/O mask
affinity mask        0      0             affinity mask
affinity64 I/O mask  0      0             affinity64 I/O mask
affinity64 mask      0      0             affinity64 mask

這不是企業版,因此 CAL 祖父的東西不應該是這裡的因素,但如果需要,我明天可以問這個問題

ProductVersion  ProductLevel  ProductUpdateLevel  Edition
11.0.5058.0     SP2           NULL                Standard Edition (64-bit)

執行 Glenn Berry 的診斷查詢,這些東西可能是相關的

  • 系統製造商:“Dell Inc.”,系統型號:“PowerEdge R720”。
  • Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz

那麼,什麼給了?我被虛擬化了但不知道嗎?我應該尋找其他地方來確定為什麼 SQL Server 不能使用某些 CPU 嗎?

參考文章

我讀過的文章列表,但顯然理解得不夠好,無法回答我自己的問題

鑑於可用的資訊,您所看到的非常有意義。

SQL Server 2012 標準版僅限於 4 個插槽或 16 個物理核心中的較小者。

由於您有 40 個核心(可能是 2 個插槽 10 核心 + HT),因此 16 個物理核心將是 32 個邏輯核心(因為 HT)。如果您總共有 40 個,我希望有 8 個由於許可而離線可見。

SQL Server 2012 版本支持的功能 - Cross-Box Scale Limits

編輯:附加資訊

根據所涉及的作業系統,計劃可能會綁定到 CPU,這些 CPU 也會為您的系統進行不平衡的 NUMA 記憶體配置。雖然這不太可能給您帶來任何問題(因為一開始並沒有註意到所有 CPU 都在使用),但它可能會對外部記憶體訪問確實可以訪問的高度使用的系統產生更大的影響加起來。

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