使用 Server + Cal 许可模型安装 SQL Server Enterprise 2012 后,在一台有 2 个处理器、每个处理器有 16 个内核(并且不涉及超线程)的计算机上并将服务器置于极其繁重的负载下,第一个处理器上的 16 个内核未得到充分利用,第二个 CPU 上的前 4 个内核被大量使用,最后 12 个内核根本没有使用(因为此 sql server 版本的 20 个内核限制)。CPU 总利用率显示为 25% 左右。不幸的是,即使任务均匀分布在 20 个内核上,服务器的性能也极差。
Windows Server 在 ESX Server 下的 VMWare 虚拟映像上运行,但所有 CPU 都分配给了 Windows Server。
我们尝试更改关联设置(例如,将大多数内核分配给 CPU,将其他内核分配给 I/O),但这并没有帮助解决性能问题。
将产品版本升级到 SQL Server Enterprise Core 2012 不仅使 SQL Server 能够利用第二个处理器上以前未使用的 12 个内核,而且还使所有处理器的任务分布更加均匀。为了解决积压的请求,CPU 利用率跃升至 90% 左右,一旦被赶上,则下降到 33% 左右,但自从我们故障转移到新更新的版本后,性能显着提高,性能问题也消失了。
我想知道是否有人知道什么可能导致 SQL Server 不均匀地分配负载,几乎完全依赖于有 12 个内核空闲的第二个处理器的前 4 个内核,并且只为第一个上的 16 个内核中的每一个分配几个任务处理器。另外,有没有什么方法可以让我们在不升级产品版本的情况下在使用的 20 个内核之间更均匀地分配负载?
该问题的另一面是产品升级做了什么导致 SQL Server 开始在它识别的所有核心之间均匀分配负载? …