运行 SQL Server 2008 R2 Standard 时,i7 上的所有核心都会被使用吗

运行 SQL Server 2008 R2 Standard 时,i7 上的所有核心都会被使用吗

我有一台配备 Intel Core i7 处理器(4 核)的服务器。如果我在任务管理器中查看处理器活动,我会看到有 8 个核心。我认为这是因为超线程(如果我错了,请纠正我)。

与最多使用 8 个 CPU 的 SQL Server Enterprise 相比,SQL Server 2008 R2 Standard 最多使用 4 个 CPU。

我的问题:SQL Server 标准版是否会充分利用此服务器上所有可用的 CPU?即它会看到 4 个还是 8 个 CPU?

答案1

SQL Server 2008 Standard 对处理器的限制是按插槽计算的,而不是按核心计算的。有关更多信息,请查看Microsoft.com 上的 SQL Server 2008 页面。具体来说,“SQL Server 2008 R2 版本概述“PDF 文档。摘自文档:

随着硬件创新的不断增加,微软仍然是唯一一家不按多核处理器核心定价的主要数据库供应商

是的,SQL Server 2008 Standard 将使用全部 8 个内核。如果存在这样的 CPU,它可以在单插槽许可证上使用 100 个内核。

答案2

这没关系。如果负载只放在四个核心上,调度程序会非常聪明,确保负载放在每个物理核心的一个逻辑核心上。超线程通常最多能为您带来 15% 的额外性能。加载虚拟核心会剥夺共享该物理核心的其他虚拟核心的资源,例如执行单元、I/O 带宽、L2 缓存空间等。因此它们无法以接近全速运行。

因此,即使在最糟糕的情况下,这也意味着 SQL Server 本身无法使用大约 15% 的 CPU。但是当 SQL Server 执行操作时,操作系统也会执行操作 - 处理网络和磁盘中断、管理内存等。在任何现实情况下,这将占 CPU 负载的 20% 左右,并且可以使用其他虚拟核心。所以你们基本上没什么好争的。

相关内容