我有几个NUMA节点

时间:2021-01-25 15:32:52

在SQL Server交流会,经常被问到的一个问题,SQL Server在几个NUMA节点上运行。因此,在今天的文章里,我想向你展示下几个方法和技术,找出你的SQL Server有几个NUMA节点。

需进一步了解NUMA,我推荐你看下NUMA Deep Dive Series from Frank Denneman

系统级别

首先我想在系统级别向你展示下几个找出你有几个NUMA节点的方法。最简单的方法是使用任务管理器的CPU视图。默认情况任务管理器会向你展示你有几个可用的CPU内核。

我有几个NUMA节点

从图片里你可以看到,系统这里汇报了你有可用CPU插口数。通常CPU插槽数和你有的NUMA节点数对应。如果你想确认的话,可以修改显示设置为NUMA视图。

我有几个NUMA节点

修改后,任务管理向你展示了你有的可用NUMA节点——我这里个会4个NUMA节点。

我有几个NUMA节点

在SysInternals工具里也有个conrinfo.exe工具,也会得到在你的系统里你有的NUMA节点数。这个工具也会告诉你各个NUMA节点之间的延迟时间(latency times)。

我有几个NUMA节点

SQL Server级别

当你不亲自访问操作系统时,你也可以使用SQL Server找出在你的系统上有几个可用NUMA节点。最简单的方法是查看SQL Server日志。因为在启动期间,SQL Server会汇报检测到的NUMA节点数。

我有几个NUMA节点

或者你可以查询sys.dm_os_memory_nodes这个DMV,这里SQL Server会汇报可用内存节点。对于每个可用的NUMA节点,SQL Srver会创建一个特定的内存节点(除内存节点ID 64外,它用来阻止管理员专用链接(Dedicated Admin Connection))。

我有几个NUMA节点

这里你可以看到这个SQL Server运行在2个节点NUMA系统。

小结

在这篇文章里你已看到有很多方法可以找出在你的系统上,你有可用的NUMA节点数。你的SQL Server运行在几个NUMA节点的系统上呢?欢迎留言!

感谢关注!

原文链接

http://www.sqlpassion.at/archive/2016/10/17/how-many-numa-nodes-do-i-have/