
Estamos tendo um problema de desempenho que não podemos explicar em nosso ambiente VMWare e espero que alguém aqui possa ajudar. Temos uma aplicação web que usa backend de banco de dados. Temos uma configuração de cluster SQL 2005 no Windows 2003 R2 entre um nó físico e um nó virtual. Ambos os servidores físicos são idênticos aos 2950 com 2 CPUs Xeaon x5460 Quad Core e 64 GB de memória, 16 GB alocados para o sistema operacional. Estamos utilizando um iSCSI San para todos os discos de cluster. O problema é que, ao utilizar o aplicativo sob testes de estresse repetidos que adicionam CPUs aos nós do cluster, o nó físico é dimensionado de 1 pCPU para 8 pCPUs, o que significa que vemos aumentos contínuos de desempenho. Ao testar o nó que executa o Vsphere, obtivemos o desempenho esperado de 12% por ser virtual, mas ainda escalamos de 1 vCPU para 4 vCPUs como o físico, mas além disso o desempenho cai, quando chegamos a 8 vCPUs, estamos vendo o desempenho números piores do que em 4 vCPUs. Novamente, ambos os nós são configurados de forma idêntica em termos de hardware, sistema operacional convidado, configurações SQL, etc. e não há tráfego além do teste no sistema. Não há outras VMs no servidor virtual, portanto não deve haver competição por recursos. Entramos em contato com a VMWare para obter ajuda, mas eles não sugeriram coisas como definir a afinidade do processador SQL que, embora fosse útil, teria o mesmo efeito líquido em cada caixa e não deveria alterar em nada nossos resultados. Analisamos todos os guias de ajuste de SQL da VMWare em relação ao VSphere sem nenhum benefício, por favor ajude!
Responder1
Hesito em inserir isso como resposta porque não tenho muito suporte concreto para isso, mas pode ser a causa do problema que você está vendo. Eu já ouvi antes (eessepage meio que suporta isso) que o agendamento de CPU VMWare tem mais dificuldade quando uma VM tem múltiplas CPUs. Para uma VM de CPU única, apenas um único processador host precisa ser agendado. No entanto, quando uma VM tem mais de um, o VMWare precisa agendar vários processadores para estarem disponíveis para a VM, o que pode levar mais tempo. Isso se tornaria cada vez mais difícil de agendar à medida que o número de CPUs da VM aumentasse, o que significa que a VM realmente apresenta um desempenho pior porque tem mais dificuldade em obter tempo de processador alocado para ela.
Além disso, reli seu último comentário e também tenho tido problemas ultimamente com contenção no vSphere. Outra coisa que você pode querer tentar (se ainda não o fez) é aumentar a alocação de recursos para esta VM, mesmo que seja a única VM existente no momento.
Responder2
Você tem uma configuração muito legal aqui ;-)
As vCPUs estão usadas em sua capacidade máxima? O que os gráficos de espera da CPU, CPU pronta e uso da CPU mostram?
Quanto mais vCPUs você adiciona a uma VM, mais sobrecarga é gerada no sistema host para gerenciar as vCPUs e mapeá-las para a física. Em algum momento, você não obterá mais desempenho de uma VM simplesmente adicionando mais vCPUs.
Você verificou se há um problema de desempenho na SAN iSCSI? Verifique os gráficos das solicitações de leitura e gravação de disco e, claro, as taxas de leitura e gravação de disco e compare-as com as do membro do cluster físico.
Talvez alguns dos valores possam apontar a direção certa.
Responder3
Só para esclarecer, você está usando uma caixa ESX de 8 núcleos (2 x 4) para hospedar uma única VM de 8 vCPU e não vê nenhum ganho real de desempenho para a quinta vCPU e as subsequentes, certo? Posso perguntar por que você não está usando o mesmo host que uma caixa SQL física? Você está usando cerca de US $ 5 a 6 mil em licenças Enterprise Plus para o que parece não trazer nenhum benefício (mesmo que você não esteja vendo problemas de desempenho) - não entendo, desculpe.