是否有规范的编程方式来查询属于 NUMA 节点的核心集?
Posted
技术标签:
【中文标题】是否有规范的编程方式来查询属于 NUMA 节点的核心集?【英文标题】:Is there a canonical programmatic way to query for the set of cores belonging to a NUMA node? 【发布时间】:2018-06-25 20:57:53 【问题描述】:可以使用以下 shell 命令获取属于每个 NUMA 节点的核心集。
$ lscpu | grep NUMA
NUMA node(s): 2
NUMA node0 CPU(s): 0-7,16-23
NUMA node1 CPU(s): 8-15,24-31
虽然解析此输出以确定属于每个 NUMA 节点的核心集并不困难,但依靠 shell 命令的格式化输出来收集此类信息是脆弱的。
Linux 中是否有规范的 API 来确定哪组内核属于哪个 NUMA 节点?
例如,/proc
或 /sys
下的系统调用或一组文件。
【问题讨论】:
【参考方案1】:根据lscpu
和kernel documentation的源代码,相关信息似乎可以在每个NUMA节点的以下两个特殊路径中获得。
/sys/devices/system/node/nodeX/cpulist
/sys/devices/system/node/nodeX/cpumap
此外,可以从以下路径获取 NUMA 节点的名称。
/sys/devices/system/node/possible
【讨论】:
以上是关于是否有规范的编程方式来查询属于 NUMA 节点的核心集?的主要内容,如果未能解决你的问题,请参考以下文章