CPU调度程序离线


9

我登录到新的客户端系统并运行sp_blitz以查看发生了什么变化。它向我报告说,“ CPU Schedulers Offline ”对我来说是新的。

由于亲缘关系屏蔽或许可问题,某些CPU内核不可用于SQL Server。

足够公平,我运行基本查询

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

那报告我有8设置为VISIBLE OFFLINE,43设置为在线。据我所知,此客户端上没有人会故意设置任何CPU亲缘关系。

我决定看看是否可以调试它。当我查看属性窗口时,我看到40个可用处理器,但没有一个设置为具有亲和力。

在此处输入图片说明

为什么dm_os_schedulers中有40个条目显示is_online为true的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”。
  • 英特尔(R)至强(R)CPU E5-2680 v2 @ 2.80GHz

那么,有什么用呢?我是否已虚拟化并且不知道?我应该在其他地方确定SQL Server为什么不能使用某些CPU吗?

参考文章

我读过的文章清单,但显然没有足够理解,无法回答我自己的问题

Answers:


13

鉴于所提供的信息,您所看到的完全有意义。

SQL Server 2012 Standard Edition限于4个套接字或16个物理内核中的较小者。

由于您有40个核心(可能是2个插槽10核心+ HT),因此16个物理核心将成为32个逻辑核心(由于HT)。如果总共有40个,由于许可,我希望8个可以离线显示。

SQL Server 2012版本支持的功能-跨箱规模限制

编辑:附加信息

根据所涉及的操作系统,日程表可能会绑定到CPU,这些CPU也会为您的系统提供不平衡的NUMA内存配置。虽然这是非常不可能的,这样会给您造成的任何问题(因为它没有注意到所有CPU都首先被使用),它可能有一个使用频率高的系统上具有非常高的影响,其中外来内存访问能够真正加起来。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.