Técnicas de recuperação de memória no ESXi – parte 1

Padrão

A virtualização trouxe consigo uma grande revolução quando se trata de gerenciamento de recursos. A possibilidade de consolidar vários sistemas operacionais em uma lata, exige que o hypervisor coordene a alocação dos recursos físicos do host para as máquinas virtuais. O ESXi utiliza de várias técnicas para maximizar o desempenho do host e também economizar recursos em momento de contenção. Importante lembrar que o ESXi permite o overcommitment, processo que permite provisionar recursos à uma maquina virtual, mesmo que ultrapasse a capacidade física do host.

Um dos destaques do hypervisor da VMware é o gerenciamento de memória. Quando os recursos físicos do host estão escassos, o VMkernel sai à procura de oportunidades para recuperar um espaço de memória que foi alocado, mas que não está sendo utilizado pelas máquinas virtuais.

As técnicas utilizadas são: TPS (transparent page sharing), balloon driver (ou vmmemctl), memory compression e memory swapping.

Antes de falar sobre cada um deles, vamos entender como o ESXi sabe em qual situação ele deve usar cada técnica. O ESXi se baseia em uma métrica chamada “host memory state”, que é determinada pela quantidade de memória livre do host em um determinado momento.

E qual threshold que o ESXi utiliza para associar à cada estado de memória? O ESXi usa uma métrica própria chamada de “minFree“, que serve como referência de quando as técnicas de gerenciamento de memória precisam ser usadas. O cálculo é feito da seguinte forma:

Para os primeiros 28GB de memória do seu host o valor inicial do minFree será 899 MB + 1% sobre o restante de memória.

Por exemplo, vamos supor que seu host possua 64 GB de memória. O cálculo ficaria assim:

64 GB – 28 GB = 36 GB

899MB + 1% de 36GB = 899MB + 360MB = 1259 MB

Com o valor do minFree, é possível entender os thresholds:

  • high state: há memória suficiente disponível
  • clear state: de 64 a 100% do minFree
  • soft state: entre 32 e 64% do minFree
  • hard state: entre 16 e 32% do minFree
  • low state: entre 0 e 16% do minFree

De acordo com o estado de memória de cada host, as seguintes técnicas de recuperação de memória são utilizadas:

Vamos entrar à fundo e falar sobre cada uma delas.

Continue lendo