我目前正在测试安装了MSSQL 17的VM。它有两个插槽中的16个内核和100GB的RAM。
当我开始测试时,只有8个核心在工作。 MSSQL不使用第二个节点的核心。
所有核心都在MSSQL中联机。配置几乎是默认的(最大并行度设置为4)
为什么不使用第二个节点的核心?
似乎你有一个标准版并达到了它的限制。
它只允许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个核心。
通过将MAXDOP设置为16,您将允许多线程使用所有CPU
USE [yourDB]
ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 16;
但同样,你的会话必然会受到工作者和工人的约束