NUMA (Non-Uniform Memory Access) describe una arquitectura en la que el coste de acceder a la memoria depende de qué CPU realiza la lectura y en qué banco físico residen los datos. Frente al modelo UMA, donde todos los procesadores comparten un único controlador de memoria con latencia uniforme, NUMA reparte controladores y bancos entre sockets o chiplets conectados por un fabric de alta velocidad. Cada acceso remoto cruza ese fabric, que en términos absolutos es rápido pero, en proporción, resulta entre 1,5 y 3 veces más lento que un acceso local a DRAM; en cargas reales con contención, la penalización puede multiplicarse por cuatro o cinco. Esa variabilidad degrada no solo la latencia media sino también la latencia de cola, fuente habitual de misterios de rendimiento en producción.
El texto repasa la cronología del modelo: surgió en mainframes y sistemas de gama alta en los años noventa (SGI Origin, Sequent NUMA-Q, AlphaServer GS), llegó al x86 commoditizado con AMD Opteron en 2003 mediante HyperTransport y se generalizó con Intel Nehalem y QuickPath en 2008. Hoy AMD usa Infinity Fabric y emplea chiplets CCD dentro de un mismo socket, lo que presenta varios nodos NUMA por procesador configurables vía NPS; Intel ofrece Sub-NUMA Clustering en sus Xeon recientes.
Para administradores de virtualización, el artículo subraya que dos máquinas virtuales idénticas en el mismo host pueden diferir hasta un 20 % en rendimiento si la memoria de una queda asignada al lado lejano del fabric respecto a las vCPU que la consumen, sin que existan ajustes en el invitado para corregirlo. Como mitigación sencilla se describe el interleaveado de páginas (numactl --interleave=all o equivalentes en JVM y algunas bases de datos), que aplana la curva de latencia a costa de renunciar a los picos óptimos. La entrega forma parte de una serie sobre los cambios que Edera ha publicado para hacer que la virtualización basada en Xen sea consciente de NUMA de extremo a extremo.
