Darrell Asked: 2019-11-13 08:45:48 +0800 CST2019-11-13 08:45:48 +0800 CST 2019-11-13 08:45:48 +0800 CST 多核与多 CPU 772 我正在向我们的服务器团队申请新服务器。哪个更适合 SQL Server 性能:2 个 CPU,每个 CPU 有 8 个内核,还是 1 个 CPU 有 16 个内核? sql-server 3 个回答 Voted Best Answer David Spillett 2019-11-13T10:09:45+08:002019-11-13T10:09:45+08:00 如果您谈论的是物理 CPU,那么您将不得不研究这些配置中芯片之间的差异,最好还是看看您是否可以使用自己的代码运行一些基准测试,看看是否有任何有用的差异。可能还有很多其他差异:每个芯片和每个内核总共有多少 L2/L3 缓存可用?内存总线标准有什么不同吗?... 如果您在谈论虚拟硬件,那么它将取决于您使用的虚拟化系统以及它如何围绕其拥有的 CPU 资源共享负载。实际上可能没有区别,因为在任何一种情况下,您的 16 个虚拟内核都会以完全相同的方式将其工作负载分布在真实硬件周围,或者可能存在某种真实硬件的镜像(因此在 2x8 的情况下,每组 8 个核心可能比它们对另一组更“本地”)。 在任何一种情况下都可能存在许可差异:如果您为每个插槽(即每个 CPU)购买许可,那么 1x16 选项可能更便宜,因为您只需支付一个。如果您按机器/节点付费,那么那里没有区别。 mustaccio 2019-11-13T09:34:40+08:002019-11-13T09:34:40+08:00 这个问题非常广泛,答案很大程度上取决于工作负载的性质和计划的 SQL Server 设置。但是,假设您未来的硬件支持 NUMA(为什么不支持呢?)并且鉴于 在 SQL Server 2016 (13.x) 中,只要 SQL Server 数据库引擎在启动时检测到每个 NUMA 节点或套接字超过 8 个物理内核,就会默认自动创建软 NUMA 节点。[...] SQL Server 数据库引擎创建了理想情况下包含八个内核的软 NUMA 节点 一个原因可能是供应商认为每个插槽 8 个内核是大多数情况下的最佳配置。 您可能还会发现这篇旧文章很有用。 Keith D. 2019-11-14T01:58:07+08:002019-11-14T01:58:07+08:00 差异非常小,取决于线程的位置。如果 CPU 线程是隔离的并且具有大型数据集,则两个物理 CPU 上的附加 L2 缓存将提供稍微更好的性能。但是,如果线程的隔离性很差,并且将所有时间都花在访问相同的内存区域上,那么将所有内容都放在一个 L2 缓存中将减少内存获取。 我相信当前一代的 SQL Server 支持 NUMA,并将尝试将相关进程保留在单个 NUMA 节点上。因此,运行两个 CPU 可能会提供非常小的优势。但是,从实际的角度来看,这并不重要。 我的建议是购买更便宜的,并将差价花在更多的 RAM 和 SSD 驱动器上。
如果您谈论的是物理 CPU,那么您将不得不研究这些配置中芯片之间的差异,最好还是看看您是否可以使用自己的代码运行一些基准测试,看看是否有任何有用的差异。可能还有很多其他差异:每个芯片和每个内核总共有多少 L2/L3 缓存可用?内存总线标准有什么不同吗?...
如果您在谈论虚拟硬件,那么它将取决于您使用的虚拟化系统以及它如何围绕其拥有的 CPU 资源共享负载。实际上可能没有区别,因为在任何一种情况下,您的 16 个虚拟内核都会以完全相同的方式将其工作负载分布在真实硬件周围,或者可能存在某种真实硬件的镜像(因此在 2x8 的情况下,每组 8 个核心可能比它们对另一组更“本地”)。
在任何一种情况下都可能存在许可差异:如果您为每个插槽(即每个 CPU)购买许可,那么 1x16 选项可能更便宜,因为您只需支付一个。如果您按机器/节点付费,那么那里没有区别。
这个问题非常广泛,答案很大程度上取决于工作负载的性质和计划的 SQL Server 设置。但是,假设您未来的硬件支持 NUMA(为什么不支持呢?)并且鉴于
一个原因可能是供应商认为每个插槽 8 个内核是大多数情况下的最佳配置。
您可能还会发现这篇旧文章很有用。
差异非常小,取决于线程的位置。如果 CPU 线程是隔离的并且具有大型数据集,则两个物理 CPU 上的附加 L2 缓存将提供稍微更好的性能。但是,如果线程的隔离性很差,并且将所有时间都花在访问相同的内存区域上,那么将所有内容都放在一个 L2 缓存中将减少内存获取。
我相信当前一代的 SQL Server 支持 NUMA,并将尝试将相关进程保留在单个 NUMA 节点上。因此,运行两个 CPU 可能会提供非常小的优势。但是,从实际的角度来看,这并不重要。
我的建议是购买更便宜的,并将差价花在更多的 RAM 和 SSD 驱动器上。