ESXi combina a abordagem tradicional de posicionamento inicial com um algoritmo de rebalanceamento dinâmico. Periodicamente (a cada dois segundos, por padrão), o sistema examina as cargas dos vários nós e determina se deve reequilibrar a carga movendo uma máquina virtual de um nó para outro.
Esse cálculo leva em consideração as configurações de recursos para máquinas virtuais e pools de recursos para melhorar o desempenho sem violar a justiça ou os direitos de recursos.
O rebalanceador seleciona uma máquina virtual apropriada e altera seu nó inicial para o nó menos carregado. Quando possível, o rebalanceador move uma máquina virtual que já tem alguma memória localizada no nó de destino. A partir desse ponto (a menos que seja movida novamente), a máquina virtual aloca memória em seu novo nó inicial e é executada apenas em processadores dentro do novo nó inicial.
O rebalanceamento é uma solução eficaz para manter a imparcialidade e garantir que todos os nós sejam totalmente usados. O rebalanceador pode precisar mover uma máquina virtual para um nó no qual ele alocou pouca ou nenhuma memória. Nesse caso, a máquina virtual incorre em uma penalidade de desempenho associada a um grande número de acessos remotos à memória. ESXi pode eliminar essa penalidade migrando de forma transparente a memória do nó original da máquina virtual para o novo nó inicial:
- O sistema seleciona uma página (4 KB de memória contígua) no nó original e copia seus dados para uma página no nó de destino.
- O sistema usa a camada de monitor da máquina virtual e o hardware de gerenciamento de memória do processador para remapear perfeitamente a visualização da memória da máquina virtual, de modo que ela use a página no nó de destino para todas as referências adicionais, eliminando a penalidade do acesso remoto à memória.
Quando uma máquina virtual é movida para um novo nó, o host ESXi imediatamente começa a migrar sua memória dessa maneira. Ele gerencia a taxa para evitar sobrecarregar o sistema, principalmente quando a máquina virtual tem pouca memória remota restante ou quando o nó de destino tem pouca memória livre disponível. O algoritmo de migração de memória também garante que o host ESXi não mova a memória desnecessariamente se uma máquina virtual for movida para um novo nó por apenas um curto período.
Quando o posicionamento inicial, o rebalanceamento dinâmico e a migração inteligente de memória funcionam em conjunto, eles garantem um bom desempenho de memória em sistemas NUMA, mesmo na presença de cargas de trabalho variáveis. Quando ocorre uma grande alteração na carga de trabalho, por exemplo, quando novas máquinas virtuais são iniciadas, o sistema leva tempo para se reajustar, migrando máquinas virtuais e memória para novos locais. Após um curto período, normalmente segundos ou minutos, o sistema conclui seus reajustes e atinge um estado estável.