ESXi combina a abordagem de posicionamento inicial tradicional 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 rebalancear a carga movendo uma máquina virtual de um nó para outro.
Esse cálculo leva em conta as configurações de recursos para máquinas virtuais e pools de recursos para melhorar o desempenho sem violar a equidade ou os direitos de recursos.
O rebalanceador seleciona uma máquina virtual apropriada e altera seu nó inicial para o nó menos carregado. Quando pode, 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 no novo nó inicial.
O rebalanceamento é uma solução eficaz para manter a equidade e garantir que todos os nós sejam totalmente usados. O rebalanceador pode precisar mover uma máquina virtual para um nó no qual ela 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 à memória remota. ESXi pode eliminar essa penalidade ao migrar de forma transparente a memória do nó original da máquina virtual para seu novo nó inicial:
- O sistema seleciona uma página (4KB 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 exibição de memória da máquina virtual, para que ela use a página no nó de destino para todas as referências adicionais, eliminando a penalidade de acesso à memória remota.
Quando uma máquina virtual é movida para um novo nó, o host ESXi começa imediatamente a migrar sua memória dessa maneira. Ele gerencia a taxa para evitar sobrecarregar o sistema, especialmente 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 mudanças nas cargas de trabalho. 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 reajustar, migrando as máquinas virtuais e a memória para novos locais. Após um curto período de tempo, normalmente segundos ou minutos, o sistema conclui seus reajustes e atinge um estado estável.