![如何在单系统环境中创建 NUMA 拓扑](https://linux22.com/image/1585775/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%8D%95%E7%B3%BB%E7%BB%9F%E7%8E%AF%E5%A2%83%E4%B8%AD%E5%88%9B%E5%BB%BA%20NUMA%20%E6%8B%93%E6%89%91.png)
我想知道是否可以在单系统环境中创建 NUMA 拓扑(2 个 NUMA 节点也可以)(我正在使用 virtualbox ubuntu 18.04)。
当我运行时$numactl -H
,我看到以下内容
available: 1 nodes (0)
node 0 cpus: 0 1 2 3
node 0 size: 1992 MB
node 0 free: 477 MB
node distances:
node 0
0: 10
我想知道在具有 4 个核心的系统中是否真的可以创建两个 NUMA 节点(仅用于模拟分布式环境)。或者我需要有四个以上的核心才能这样做吗?
答案1
在虚拟化中,您可以分配给所有虚拟机的核心总数几乎是无限的。但您可以分配给每个虚拟机的核心数量不能超过主机上逻辑核心的总数量。
因此,简而言之:是的,您可以创建主机可以处理的任意数量的 NUMA 核心。
虚拟机管理程序使用调度程序将每个虚拟机的 CPU 指令排队到主机的 CPU。设置的虚拟机越多,意味着通过虚拟机管理程序的调度程序进入主机 CPU 的队列就越长,这意味着速度会变慢,但不会失败。CPU 和现代系统架构旨在处理队列,这实际上是虚拟化如此有用和强大的原因之一:它使主机上的队列在更多时间内保持更满,从而更有效地利用主机的资源。