Desempenho do SQL Server no VSphere 4.0

1

Estamos tendo um problema de desempenho que não podemos explicar com nosso ambiente VMWare e espero que alguém aqui possa ajudar. Temos um aplicativo da web que usa um back-end de bancos de dados. Temos uma instalação do SQL 2005 Cluster 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 2x CPUs Xeaon x5460 Quad Core e 64GB de memória, 16GB alocados ao sistema operacional. Estamos utilizando um iSCSI San para todos os discos de cluster. O problema é que, ao utilizar o aplicativo em um teste de estresse repetido que adiciona CPUs aos nós do cluster, o nó Physical é dimensionado de 1 pCPU para 8 pCPUs, ou seja, vemos aumentos contínuos de desempenho. Ao testar o nó que executa o Vsphere, temos o esperado desempenho de 12% para 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 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 VMWare para obter ajuda, mas eles realmente não sugeriram coisas como definir Afinidade do Processador SQL, o que, apesar de ser útil, teria o mesmo efeito de rede em cada caixa e não deveria alterar nossos resultados nem um pouco. Analisamos todos os guias de ajuste de SQL do VMWare com relação ao VSphere sem nenhum benefício, por favor, ajude!

    
por Charles 09.06.2010 / 18:56

3 respostas

1

Estou hesitante em entrar nisto como uma resposta porque não tenho muito apoio concreto para isso, mas pode ser a causa do problema que você está vendo. Eu já ouvi antes (e esta página suporta isso) que o agendamento de CPU VMWare tem mais difícil quando uma VM tem várias CPUs. Para uma única VM de CPU, apenas um único processador de host precisa ser planejado. No entanto, quando uma VM tem mais de um, o VMWare precisa programar vários processadores para estarem disponíveis para a VM, o que pode levar mais tempo. Isso se tornaria mais e mais difícil de programar à medida que o número de CPUs de VM aumenta, o que significa que a VM realmente vê um desempenho pior porque tem mais dificuldade em obter o tempo do processador alocado a ela.

Além disso, reli seu último comentário e também tenho tido problemas ultimamente com a contenção no vSphere. Outra coisa que você pode querer tentar (se ainda não o fez) é aumentar a alocação de recursos para essa VM, mesmo que seja a única VM existente no momento.

    
por 10.06.2010 / 04:20
1

Você tem uma configuração bem legal aqui; -)

As vCPUs estão acostumadas com sua capacidade máxima? Quais são os gráficos para a espera da CPU, CPU pronta e uso da CPU informando a você?

Quanto mais vCPUs forem adicionados a uma VM, mais sobrecarga será 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 as solicitações de leitura de disco e de gravação em disco dos gráficos e, é claro, as taxas de leitura e gravação em disco e compare-as com as do membro de cluster phyiscal.

Talvez alguns dos valores possam apontar você na direção certa.

    
por 09.06.2010 / 20:08
0

Só para esclarecer, você usa 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 e a próxima vCPU, certo? Posso fazer a pergunta: por que você não está usando o mesmo host como uma caixa física de SQL? Você está usando ~ $ 5-6k de licenças Enterprise Plus para o que parece não ter nenhum benefício (mesmo que você não esteja vendo problemas de desempenho) - não entendi.

    
por 09.06.2010 / 20:28