我有一个问题要更好地理解NUMA节点如何在Server中提供帮助:
在我们当前的设置中,我们有4个NUMA节点,有20个核,并且启用了超线程,总共有40个逻辑处理器。内存为400 GB时,每个NUMA每个获得100 GB。
它是一个基于Windows2012 R2标准的SqlServer2012Enterprise(基于核心授权)的物理服务器。它有4个套接字,每个套接字有10个核心,每个套接字有20个逻辑处理器,我看到的错误日志总共有80个。
我的理解是,如果我们使用相同数量的NUMA (未来的SQL刷新到2017/19),而不是我更喜欢2 NUMA,那么4个NUMA节点的性能可能不会更好。
为什么我要这样说,因为我认为与2 NUMA 400 GB将被分配为200 GB在每个。
因此,我的理解是,根据查询在节点间切换内存的方式进行此配置,可能会执行更好或最好的配置。是的,我们看到了一些内存问题,我知道还有其他相关的问题,但是这个问题更具体的是为Server设置的NUMA。
有人可以分享他们的经验或可能提供更多的洞察力,因为我在这里可能认为错误的信念查询将不得不减少交换在2 NUMA与4 NUMA?
是否有一种方法或查询可以检查查询是否花费时间在两个不同的NUMA上交换内存,并且可能是一个问题?
对于未来的设计(跨节点内存访问),是否有一种方法可以衡量两个节点是否比四个节点工作得更好?
发布于 2020-03-13 20:10:53
它是windows 2012 R2标准上的物理服务器。它有4个套接字,每个套接字有10个核心,每个套接字有20个逻辑处理程序,从我所看到的错误日志中总共有80个。它的SQL2012试图移到2017年
好的。此框上的内存被分离成4个独立的节点,每个节点都连接到一个套接字上。Server将跨所有套接字使用内存,由于大部分Server内存用于缓存数据库页和查询计划,因此将有大量的跨节点内存访问。这也没什么。将在本地节点上为运行任务的工作人员分配查询内存授权。
Server有它为每个NUMA节点分配的几个资源,对于Server,2016+将使用自动软NUMA特性自动细分大型NUMA节点。
因此,一方面,对于服务器内存的物理配置,您无能为力;另一方面,您不需要做什么,因为SQL server将自动配置自己,以便最有效地使用NUMA节点。
是否有一种方法,我们可以衡量,如果2个节点可能比4个节点更好的未来设计?
基本上,更少的节点更好,但是在一个NUMA节点上可以放置多少个内核和多少RAM是有限制的。
大多数跨NUMA节点内存访问应该位于缓冲池中,您可以使用性能计数器跟踪该缓冲池:
Server:缓冲区节点远程注释页查找/秒表示来自此节点的查找请求的数量,这些请求来自其他节点。
https://dba.stackexchange.com/questions/261739
复制相似问题