Há muito mais do que apenas o ESXi em questão aqui,
- Cada VM consumirá até 4 GBs + "overhead", documentados aqui . Isso depende das vCPUs, + memória alocada. No mínimo, cada VM usará 4261,98 MBs (4096 + 165,98)
- A sobrecarga de memória do ESXi é dependente de hardware. A opção mais fácil é observar o uso da memória do sistema no cliente vSphere. De memória, lembro que está em torno da marca de 1,3 GB, mas como afirmado, isso depende muito do hardware.
Alocação de memória e comprometimento excessivo explicados
Observe que o hipervisor não alocará toda essa memória antecipadamente , depende do uso da VM. No entanto, vale a pena entender o que acontecerá se as VMs tentarem alocar e usar toda a memória alocada para elas.
O máximo que seu host VM + tentará usar será de aproximadamente, a milhagem de 55 GBs pode variar
- 1,3 GBs usados pelo ESXi
- 4261,98 MBs * 13 usados pelas VMs
Há outro aspecto a ser levado em consideração: os limites de memória. Por padrão, o VMware tentará ter 6% livre (alto limite de memória). Portanto, os 55 GB de memória usada precisam ser reduzidos para ~ 45 GB
Isso significa que o host terá aproximadamente 10.500 MB de memória necessário para recuperar de algum lugar, caso as VMs usem a memória que foram alocadas. Há três coisas que o ESX faz para encontrar 10,5 GBs adicionais.
Métodos de recuperação de memória
- Compartilhamento de página transparente
- Balão de memória
- Troca de hipervisor
Você deve ler e entender Noções básicas sobre gerenciamento de recursos de memória no VMware® ESX ™ Server .
Dependendo de um grande número de fatores, uma combinação dos três ocorrerá / poderá ocorrer em um host comprometido demais. Você precisa testar seu ambiente e monitorar essas métricas para entender o impacto do comprometimento excessivo.
Vale a pena conhecer algumas regras grosseiras (todas no artigo acima e em outras fontes).
- O compartilhamento de página transparente não ocorre para VMs que usam páginas de 2/4 MB. Como você alocou 4096 MBs para as VMs do Windows, eles usarão as páginas de 2/4 MB por padrão (dependendo do PAE). Somente sob pressão de memória o VMware divide as páginas grandes em páginas de 4 KB que podem ser compartilhadas. O TPS depende do uso de ciclos ociosos da CPU e da digitalização de páginas da memória a uma determinada taxa. Retorna a memória de forma relativamente lenta (pense uma hora em vez de minutos). Portanto, uma tempestade de inicialização significa que o TPS não o ajudará. Dos três, isso tem o menor impacto no desempenho. Mais do documento,
Nos sistemas de virtualização de memória assistida por hardware (por exemplo, Intel EPT Hardware Assist e AMD RVI Hardware Assist [6]), o ESX faz backup automaticamente de páginas físicas convidadas com grandes páginas físicas de host (2 MB de região contígua de memória em vez de 4KB para páginas regulares) para melhor desempenho devido a menos perdas de TLB. Nesses sistemas, o ESX não compartilha essas páginas grandes porque: 1) a probabilidade de encontrar duas páginas grandes com conteúdo idêntico é baixa e 2) a sobrecarga de fazer uma comparação bit a bit para uma página de 2 MB é muito maior que para uma página de 4KB. No entanto, o ESX ainda gera hashes para as páginas de 4KB em cada página grande. Como o ESX não trocará páginas grandes, durante a troca de host, a página grande será dividida em páginas pequenas, para que esses hashes pré-gerados possam ser usados para compartilhar as páginas pequenas antes de serem trocadas. Em resumo, não podemos observar nenhum compartilhamento de página para sistemas de virtualização de memória assistida por hardware até que a memória do host seja supercomprometida.
O balão começa em seguida (os limites são configuráveis; por padrão, é quando o host possui menos de 6% de memória livre (entre alta e software)). Certifique-se de instalar o driver e atente para Java e aplicativos gerenciados em geral. O sistema operacional não tem informações sobre o que o coletor de lixo fará a seguir e acabará atingindo as páginas que foram trocadas para o disco. Não é uma prática incomum para servidores que executam aplicativos java exclusivamente desativar o swap totalmente para garantir que isso não aconteça. Dê uma olhada na página 17 do vSphere Memory Management, SPECjbb
A troca de hipervisor , dos três métodos, é a única que garante que a "memória" esteja disponível para o hipervisor em um tempo definido. Isso será usado se 1 e 2 não fornecerem memória suficiente para permanecer abaixo do limite rígido (padrão de 2% de memória livre). Quando você ler as métricas de desempenho (faça você mesmo), perceberá que esse é o pior desempenho dos três. Procure evitá-lo a todo custo, pois o impacto no desempenho será muito visível em quase todos os aplicativos, porcentagem de dois dígitos
Há mais um estado para estar ciente de baixo (por padrão, 1%). No manual, isso pode reduzir drasticamente seu desempenho,
Em um caso raro em que a memória livre do host fica abaixo do limite baixo, o hipervisor continua a recuperar a memória por meio de trocas e compactação de memória, além de bloquear a execução de todas as máquinas virtuais que consomem mais memória do que suas alocações de memória de destino.
Sumário
O ponto principal a enfatizar é que é impossível prever nos white papers como o seu ambiente se comportará.
- Quanto o TPS pode lhe dar? (Depende da similaridade das suas VMs com o SO, o Service Pack e os aplicativos em execução)
- Com que rapidez suas VMs alocam sua memória? Quanto mais rápido eles forem, maior a probabilidade de você pular para o próximo limite antes que o esquema de recuperação de memória menos impactante consiga manter você no seu limite atual.
- Dependendo da aplicação, cada esquema de recuperação de memória terá um impacto muito variado.
Teste seus cenários médios, seu cenário de percentil 95% e, finalmente, o máximo para entender como o ambiente será executado.
Editar 1
Vale acrescentar que, com o vSphere 4 (ou 4.1 não consegue se lembrar), agora é possível colocar a troca de hipervisor no disco local, mas ainda vmotion a VM. Se você estiver usando armazenamento compartilhado, recomendo que você mova o arquivo de troca do hipervisor para estar no disco local por padrão. Isso garante que, quando um host está sob forte pressão de memória, ele não afeta todos os outros hosts / VMs do vSphere no mesmo armazenamento compartilhado.
Editar 2
Com base nos comentários, o ESX não aloca a memória antecipadamente em negrito ...
Editar 3
Explicou um pouco mais sobre os limites de memória.