ESXi usa un programador NUMA sofisticado para distribuir de forma dinámica la carga del procesador, así como la localidad de memoria o el equilibrio de carga del procesador.
- Cada máquina virtual que administra el programador NUMA se asigna a un nodo de inicio. Un nodo de inicio es uno de los nodos NUMA del sistema que contiene procesadores y memoria local, según lo indica la tabla de asignación de recursos del sistema (SRAT).
- Cuando se asigna memoria a una máquina virtual, el host ESXi la asigna preferentemente desde el nodo de inicio. Las CPU virtuales de la máquina virtual deben ejecutarse en el nodo de inicio a fin de maximizar la localidad de memoria.
- El programador NUMA puede cambiar de forma dinámica el nodo de inicio de una máquina virtual con el fin de responder a los cambios de la carga del sistema. Es posible que el programador migre una máquina virtual a un nuevo nodo de inicio para disminuir el desequilibrio de carga del procesador. Debido a que esto podría hacer que una mayor cantidad de memoria sea remota, es posible que el programador migre la memoria de la máquina virtual de forma dinámica a su nuevo nodo de inicio para mejorar la localidad de memoria. El programador NUMA también puede llegar a intercambiar las máquinas virtuales entre los nodos si esta acción mejora la localidad de memoria general.
Algunas máquinas virtuales no se administran con el programador NUMA de ESXi. Por ejemplo, si establece la afinidad de procesador o memoria de forma manual para una máquina virtual, es posible que el programador NUMA no pueda administrar esta máquina virtual. Las máquinas virtuales se ejecutan correctamente aun cuando no se administran mediante el programador NUMA. Sin embargo, no obtienen los beneficios de las optimizaciones de NUMA de ESXi.
Las directivas de programación de NUMA y selección de ubicación de memoria de ESXi pueden administrar todas las máquinas virtuales de forma transparente, de modo que los administradores no deban hacerse cargo de la complejidad que implica equilibrar las máquinas virtuales entre los nodos explícitamente.
Las optimizaciones funcionan sin problemas sea cual sea el tipo de sistema operativo invitado. ESXi proporciona compatibilidad con NUMA incluso para máquinas virtuales que no admiten el hardware NUMA, como Windows NT 4.0. De esta forma, puede aprovechar el hardware nuevo incluso con sistemas operativos heredados.
Una máquina virtual cuya cantidad de procesadores virtuales es mayor que la cantidad de núcleos de procesador físicos disponibles en un nodo de hardware único se puede administrar de forma automática. El programador NUMA puede admitir este tipo de máquina virtual. Para ello, hace que esta expanda los nodos NUMA. Es decir, se divide en varios clientes NUMA, a cada uno de los cuales se le asigna un nodo. Estos clientes se administran mediante el programador como clientes normales, no expansibles. Esto puede mejorar el rendimiento de determinadas cargas de trabajo de uso intensivo de memoria con alta localidad. Para obtener información sobre cómo configurar el comportamiento de esta característica, consulte Atributos avanzados de máquinas virtuales.
ESXi 5.0 y versiones posteriores admiten la exposición de la topología NUMA virtual en los sistemas operativos invitados. Para obtener más información sobre el control de NUMA virtual, consulte Usar NUMA virtual.