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?