Para contenções de CPU, você pode medir o CPU Steal Time . Do artigo vinculado:
Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.
Em diversas ocasiões, enfrentei a questão de saber se a máquina virtual em que estou está sendo afetada por outras VMs em execução no mesmo host da VM. Eu entendo que, mesmo em um cenário perfeito em que nem a CPU nem a RAM nem o Disco foram provisionados em excesso, haverá alguns efeitos sobre as VMs irmãs no mesmo host.
Existe algum método comprovado de medir a contenção de recursos de dentro de uma máquina virtual? O que é uma boa abordagem?
No passado, medi o tempo de execução de tarefas padronizadas (por exemplo, compilação de GCC ou codificação de vídeo) entre diferentes VMs, mas os resultados variam mesmo quando controlo a carga em todas as outras VMs no mesmo sistema.
Devo mencionar que todos esses sistemas são baseados em Linux.
Edit: Vamos supor que eu não tenho acesso direto ao host, apenas as VMs
Para contenções de CPU, você pode medir o CPU Steal Time . Do artigo vinculado:
Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.
O VMWare tem um bom documento sobre como determinar a contenção de recursos - link
Supondo que você esteja usando 5.1 -
CPU
Verifique o esxtop na linha de comando
Carga Média de 1 significa que as CPUs são totalmente utilizadas.
% Pronto deve estar abaixo de 5%
Memória
Verifique o esxtop na linha de comando
Verifique o valor de supercomprometimento do MEM |
Menos 1 do valor de supercomprometimento do MEM, se o campo terminar com 0, você estará bem.
Caso contrário, se estiver acima de 0, você estará supercomprometendo a RAM
Disco
Verifique o esxtop na linha de comando
Veja se o tempo de latência do DAVG é superior a 5 segundos