![如何在單系統環境中建立 NUMA 拓撲](https://rvso.com/image/1585775/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%96%AE%E7%B3%BB%E7%B5%B1%E7%92%B0%E5%A2%83%E4%B8%AD%E5%BB%BA%E7%AB%8B%20NUMA%20%E6%8B%93%E6%92%B2.png)
我想知道是否可以在單一系統環境(我使用的是 virtualbox ubuntu 18.04)中建立 NUMA 拓撲(2 個 NUMA 節點也可以)。
當我運行時$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 和現代系統架構旨在處理佇列,這實際上是虛擬化如此有用且強大的原因之一:它使主機上的佇列在更多時間裡保持更滿,更有效地使用主機資源。