Estamos vendo nosso software se comportando de maneira incomum em um dos clientes em que está sendo executado dentro de uma máquina virtual do Windows 2008. O host é o VMWare ESX Server.
O maior problema que eu vi é que nossos processos eliminam conexões de soquete ou tempo limite de conexões de soquete. Alguns de nossos processos se comunicam através de soquetes TCP. Em alguns casos, fazemos conexão de soquete com sistemas remotos (por exemplo, WMI, JDBC).
Sou levado a acreditar que a VM está sem recursos. Não temos acesso aos painéis de administração / desempenho do ESX. Aprendi também que quaisquer números que perfmon ou gerenciador de tarefas na VM do host fornecem não são uma indicação verdadeira da integridade do sistema operacional do host.
Eu poderia escrever um programa que faça um monte de matemática de ponto flutuante e imprima o tempo gasto. Em seguida, compare esse tempo com o mesmo obtido em diferentes VMs ou caixas reais do Windows.
Essa abordagem é suficiente para podermos determinar se a causa raiz é realmente o desempenho da VM. No entanto, seria muito mais fácil convencer o cliente se havia uma maneira ou ferramenta padrão para fazer isso.
Existe um?
fonte
Respostas:
Costumo usar os mesmos produtos que utilizo para comparar o hardware físico.
http://www.passmark.com/products/pt.htm
Evite o teste 3d, é claro, mas os outros podem ser úteis, especialmente os benchmarks de disco e rede. Verifique se você está usando os drivers de rede e E / S adequados e se todas as configurações do Windows estão otimizadas para VM.
fonte
Para testar a rede, eu uso iperf e netperf para testar isso.
Para testar a E / S de disco, use o sqlio, que é outra ferramenta padrão do setor. Execute testes de E / S aleatórios e sequenciais com diferentes tamanhos de bloco.
Para os testes de CPU / RAM, não consigo pensar em nada para o Windows em cima da minha cabeça.
fonte