I have a new system, with 2 socketed CPUs. I've heard that there can be bottlenecks when working with NUMA systems, if an application on processor 0 tries to access memory attached to processor 1. How does the linux kernel handle running software on a NUMA system?
- Would the kernel (automatically) prioritize putting all of an applications threads and memory on one CPU, if possible?
- What if the application is CPU heavy and creates more threads than cores that are available on one CPU?
- What about VMs?
- If you created a KVM VM with less resources than a single CPU has access to (if both the cores and the memory is less than what is available) would it work the best way out of the box or would you need to manually set the VMs affinity or something?
- What if you wanted a VM that used more than a single CPUs resources, but you emulated NUMA? Would that work as expected out of the box too?
- If I installed bog-standard Ubuntu or centos, would I have to do anything to make it NUMA-aware
I suppose this question is very general, but I truly don't know much about how NUMA works, and I have found little documentation about it.
Asked by Kaiden Prince
(101 rep)
Jan 22, 2023, 03:05 PM