Diminuição do desempenho do ASP.NET entre o servidor de 32 bits / 64 bits

9

No momento, estamos atualizando nosso servidor de produção de 32 bits para um servidor de 64 bits mais potente, enquanto atualizamos para o ASP.NET 4. No entanto, ao fazer alguns testes de carga leve, parece que estamos tendo uma queda de desempenho!

Eu criei um teste de carga simples com uma carga constante de 20 usuários executando alguns casos de uso simples e comparei os resultados:

Comovocêpodever,aconfiguraçãodemaiordesempenhoéoservidorde32bitsexistentecomoASP.NET2.0.

VocêpodeverqueexecutandooIISnomodode32bitsnamáquinade64bits,ébastantesemelhanteaoservidorde32bitsexistente,masaoexecutaroIISnomodode64bitsnoservidorde64bits-odesempenhoésignificativamentepior.Nãoseiporqueissoacontece,jáqueonovoservidorémelhor.

Poralgumarazão,todavezqueeuexecutootestecomoIISem64bits,háumgrandepiconoinício,entãoeleseestabiliza,masaindacomumtempoderespostamaiorque32bits.OpicodesaparecequandoeuexecutooIISnomodode32bits.

Observe que o pool de aplicativos / aplicativo não está sendo reiniciado entre os testes, mas o pico está consistentemente lá e a resposta é superior a outras configurações.

Então - minha pergunta é: alguém tem alguma idéia do porquê disso? Há alguma configuração que eu precise definir? Alguém tem algumas dicas sobre como eu posso diminuir o que está causando a diferença?

Servidor de produção atual: Win Server 2003 - 32 bits - IIS6

Novo servidor: Win Server 2003 R2 - 64 bits - IIS6

    
por DavidMasters84 11.07.2011 / 18:55

2 respostas

4

Conforme a documentação, a MS recomenda a execução de pools de aplicativos de 32 bits no servidor de 64 bits, já que um aplicativo Web não deve usar mais memória (internamente).

Aplicativos de 32 bits têm sempre mais desempenho - ponteiros menores significam menos memória necessária para um conjunto específico de instruções, o que significa melhores taxas de acesso ao cache.

Processos

de 64 bits fazem apenas sentido limitado - quando um processo realmente precisa de mais memória. se você mantiver seu front-end da web fazendo exatamente isso (front end), não há razão para precisar de muita memória;)

No topo, faz sentido atualizar para versões com maior desempenho. O IIS6 consumiu muito tempo no desempenho - o IIS 7.5 é muito melhor, especialmente se você executar código ASP.NET / gerenciado.

    
por 12.07.2011 / 08:00
2

Nós tentamos isso no nosso servidor Windows 2K3 e temos a mesma coisa, eu não estava aqui na época, mas tem algo a ver com a maneira como a MS implementou 64Bit .Net em 2K3 (não sei o que mas a pessoa que me disse é um MVP, então vou tomar sua palavra sobre isso.)

E apenas para informá-lo de que, se você migrar para o Win2K8, poderá ver a mesma coisa que eu com os nossos servidores aqui e ter o mesmo problema de desempenho. Do que me foi dito e um pouco de leitura para aproveitar 64Bit .Net o uso de pipelines integrados é recomendado ( link )

Desculpe, isso não responde à sua pergunta, mas eu pensei em avisar que você não é o único a ver esse problema.

    
por 12.07.2011 / 05:45