我的机器运行的是 Windows 2012 R2,有 48 个逻辑处理器和 240GB RAM。
我创建了一个具有 48 个处理器和 230GB 内存的虚拟机。
我对应该创建的 NUMA 节点以及分配给每个节点的内存感到困惑。单击“硬件类型”,它会创建 24 个节点,每个节点有 2 个处理器。目前我已将每个插槽设置为 2 个 NUMA 节点,每个 NUMA 节点有 12 个处理器,每个 NUMA 有 65GB 或 RAM。
我面临的问题是 SQL 服务器(Window 2008 + sql 2008)的性能。批量处理几百行数据时可能需要 1-2 秒。但是,处理几行数据时可能需要相同的时间。性能时好时坏。
我需要一些基于我分配给 VM 的处理器和 RAM 的 NUMA 配置建议。
谢谢路易斯
答案1
当您单击“使用硬件拓扑”时,虚拟机将采用物理机 BIOS 报告的相同配置。如果它说您的虚拟机有 24 个 NUMA 节点,则意味着您的主机的 BIOS 将每个核心报告为单独的 NUMA 节点,这并不是特别有用。
您应该检查物理主机的 BIOS 设置,看看是否可以让它执行更合理的操作。然后再次单击“使用硬件拓扑”以查看结果。具有功能良好的 BIOS 的机器通常会报告每个处理器包是一个 NUMA 节点,或者可能是两个。
无论如何,如果底层 BIOS 损坏,您将 VM 设置为什么都无关紧要,因为 Hyper-V 会将虚拟 NUMA 节点映射到 BIOS 是否报告物理 NUMA 节点,并且除非这些物理 NUMA 节点有更有用地描述,否则您不会获得良好的性能。
答案2
Guest Aware NUMA 实际上应该提高 NUMA 感知客户操作系统和应用程序(例如 Windows Server 和 SQL Server)的性能。
请参阅此处了解更多详细信息:https://technet.microsoft.com/en-us/library/dn282282.aspx?f=255&MSPPError=-2147217396
保留高级处理器设置,除非集群中的主机具有不同的物理 NUMA 大小。
是否启用了动态内存?如果启用,您将失去客户感知 NUMA。当您需要大型高性能机器时,请使用静态 RAM。
之后,我会开始寻找其他可能的原因,例如存储设计/性能、SQL 代码等。