15 sql-server sql-server-2012 hardware
升级 SQL Server 的硬件后,我们在 Windows 任务管理器中注意到 SQL 实例仅使用了可用线程的一半:
.
服务器具有以下硬件和软件:
运行select cpu_count from sys.dm_os_sys_info
返回 40。
操作系统可以看到所有 80 个线程。
为什么只使用了服务器一半的处理能力?
我们在两台服务器上拥有相同的硬件和软件,并且它们都表现出相同的行为。
Jon*_*gel 24
在 SQL Server 错误日志中,它应该会告诉您原因。我在客户系统上发现了这个(实际上只是粘贴了 Google 果汁的消息):
SQL Server 检测到 4 个插槽,每个插槽 8 个内核,每个插槽 16 个逻辑处理器,总共 64 个逻辑处理器;使用 40 个基于 SQL Server 许可的逻辑处理器。这是一条情报信息; 无需用户操作。
我从这里得到了可能的解释:
对于对现有 SQL EE Server 许可证(或根据其当前的企业协议在期限内对其进行访问)拥有软件保障的客户,我们创建了一个企业版版本,使他们能够升级到 SQL Server 2012。此版本具有技术限制,将实例限制为仅使用 20 个处理器内核(具有超线程的 40 个 CPU 线程)。
摘要:在错误日志中,该版本将被报告为Enterprise Edition
或Enterprise Edition: Core-based Licensing
。如果是前者,如上述客户系统的情况,您将需要获得基于内核的许可证才能使用所有可用内核。
如果情况并非如此,并且您已经获得了所有内核的许可,请检查您的关联掩码设置,尤其是在设置了这些设置并且底层硬件已升级的情况下。
查看 SQL Server 首次启动时的 ERRORLOG。它会告诉你它使用了多少 CPU,可能是为什么。如果您可以在某处发布 ERRORLOG 文件,这将有助于了解发生了什么。