Han*_*der 8 performance sql-server configuration vmware numa
我们在 VMWare 主机中有一个 SQL Server 2012 SP 2 CU 8 实例。操作系统为 Windows Server 2012 R2。
Windows 任务管理器说我们有两个套接字和 8 个虚拟内核。此数字对应于来宾下方的实际硬件。
在任务管理器中,我也无法将视图更改为 NUMA 节点。
在 SQL Server 中仍然只能看到一个 NUMA 节点

来自 Glen Berrys 诊断查询的这个片段也给了我这个信息
EXEC sys.xp_readerrorlog 0, 1, N'detected', N'socket';
Run Code Online (Sandbox Code Playgroud)
SQL Server 检测到 2 个插槽,每个插槽 4 个内核,每个插槽 4 个逻辑处理器,总共 8 个逻辑处理器;使用基于 SQL Server 许可的 8 个逻辑处理器。这是一条情报信息; 无需用户操作。
根据所有这些信息,我可以怀疑我们仅在一个 NUMA 节点上运行,但跨两个套接字运行。
我的问题:
我认为有很多关于 NUMA 节点的错误信息。如果有人可以回答我的问题或指出详细解释这个概念的有用资源,那将不胜感激。
以下两篇文章清楚地表明,VMware 将向来宾操作系统呈现最佳的虚拟 NUMA 配置。因此,VM 上配置的套接字数量与 NUMA 节点数量或多或少无关。如果实际硬件在一个 NUMA 节点中至少有 8 个内核,那么 VMware 只会向具有 8 个 CPU 的来宾呈现一个 NUMA 节点,而不管 VM 的插槽数如何。
确定现代 CPU 的 NUMA 节点边界包含两个有用的引述,表明即使在硬件上,插槽数也不总是等于 NUMA 节点数:
我们最初做这个分析时,常见的多核处理器是双核或最多四核。在这些芯片上,硬件制造商将 NUMA 边界划分为内核,而不是插槽。但对于较大的多核(6、12 等)芯片来说,这种配置似乎并不相同。
和
简而言之,不要假设您的 NUMA 边界被划分为内核——这在很大程度上取决于您的特定 CPU 架构。
我还看到一篇 TechNet 文章Soft-NUMA (SQL Server),指出每个套接字通常由一个 NUMA 节点表示,但它没有解释何时不会。
您还可以检查硬件的 BIOS 以确保启用了 NUMA。如果它被禁用,我会感到惊讶,但我在我的职业生涯中学会了永远不要假设有人没有做完全不合理的事情。
回答您的问题: