MSSQL 17只使用了一半的可用处理器

问题描述 投票:2回答:1

我目前正在测试安装了MSSQL 17的VM。它有两个插槽中的16个内核和100GB的RAM。

当我开始测试时,只有8个核心在工作。 MSSQL不使用第二个节点的核心。

所有核心都在MSSQL中联机。配置几乎是默认的(最大并行度设置为4)

为什么不使用第二个节点的核心?

sql-server hyper-v sql-server-2017
1个回答
0
投票

似乎你有一个标准版并达到了它的限制。

它只允许4个插座。如果您的VM配置为8个插槽x 2个核心,您将只看到其中的一半

您可以通过运行来检查它:

SELECT @@VERSION

解决方法是重新配置VM以将核心呈现为:1个套接字x 16个核心,或2x8或4x4

有关限制的更多信息,请访问:Editions and supported features

更新:

  • 当我开始测试时,只有8个核心在工作。
  • 配置几乎是默认的(最大并行度设置为4)

另一个可能的原因是您的测试只使用少量连接。 SQL Server会话绑定到绑定到调度程序的worker和worker。

所以关于这样的链:Connection-> Session-> Worker-> Scheduler-> Core。

目前MAXDOP设置为4,这意味着单个会话最多可以加载4个核心,2个会话可以加载8个核心。

通过将MAXD​​OP设置为16,您将允许多线程使用所有CPU

USE [yourDB]
ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 16;

但同样,你的会话必然会受到工作者和工人的约束

© www.soinside.com 2019 - 2024. All rights reserved.