bil*_*nkc 10 sql-server sql-server-2012 sp-blitz
我登录到一个新的客户端系统并运行 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;
Run Code Online (Sandbox Code Playgroud)
那报告说我有 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
Run Code Online (Sandbox Code Playgroud)
这不是企业版,所以 CAL 祖父的事情不应该是这里的因素,但如果需要的话,我明天可以问这个问题
ProductVersion ProductLevel ProductUpdateLevel Edition
11.0.5058.0 SP2 NULL Standard Edition (64-bit)
Run Code Online (Sandbox Code Playgroud)
运行 Glenn Berry 的诊断查询,这些东西可能是相关的
那么,什么给?我被虚拟化了却不知道吗?是否还有其他地方我应该寻找确定为什么 SQL Server 不能使用某些 CPU?
我阅读的文章列表,但显然理解不够好,无法回答我自己的问题
Sea*_*ser 13
考虑到可用信息,您所看到的非常有意义。
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 都在使用),但它可能对高度使用的系统产生更大的影响,其中外部内存访问确实可以加起来。