What is NUMA Spanning in Hyper-V?
I recently made the jump to Windows Server 2008 R2 with SP1 in my home lab. Due to a project I was working on, I had to hold off on SP1 for quite some time on my primary server. After I did the upgrade, I decided to snoop around the Hyper-V Manager a bit to see what was new and different. One item in particular caught my eye.
As the description indicates, NUMA stands for non-uniform memory architecture. In simplistic terms, NUMA allows for greater levels of scalability than traditional hardware expansion options, such as SMP. NUMA accomplishes this goal by eliminating what is a single choke point in traditional computing architecture: the memory bus. By adding additional memory busses, a system can be scaled to greater heights. However, it is also adds some design complexity. Each node in a NUMA architecture is generally considered a block of memory and the processors and I/O devices that are on the same physical bus as the aforementioned memory. Individual nodes are then aggregated through the use of an interconnect bus. That’s about as far as I’m going to go on NUMA except to say that this architecture basically breaks down a larger system into smaller chunks which allows for the scalability that I mentioned.
In Hyper-V with R2 SP1, virtual machines can be configured to spam multiple NUMA nodes. In this case, the virtual machine would consume RAM from both the local node as well as from remote nodes. This allows the virtual machine to access more memory than would otherwise be possible, but there is the potential for a performance impact since traffic will need to traverse multiple memory controllers and the interconnect bus.