Disminución del rendimiento de ASP.NET entre el servidor de 32 bits / 64 bits

9

Actualmente estamos en el proceso de actualizar nuestro servidor de producción de 32 bits a un servidor de 64 bits más potente mientras se actualiza a ASP.NET 4. Sin embargo, al hacer algunas pruebas de carga ligera, parece que tenemos una disminución del rendimiento.

He creado una prueba de carga simple con una carga constante de 20 usuarios que realizan algunos casos de uso simples y comparé los resultados:

Respuestas de página

Como puede ver, la configuración de mayor rendimiento es el servidor existente de 32 bits con ASP.NET 2.0.

Puede ver que al ejecutar IIS en modo de 32 bits en la máquina de 64 bits, es bastante comparable al servidor de 32 bits existente, pero cuando se ejecuta IIS en modo de 64 bits en el servidor de 64 bits, el rendimiento es significativamente peor. No estoy seguro de por qué es así, dado que el nuevo servidor es mejor.

Por alguna razón, cada vez que ejecuto la prueba con IIS en 64 bits, hay un gran pico al inicio, luego se iguala pero aún con un tiempo de respuesta superior a 32 bits. El pico desaparece cuando ejecuto IIS en modo de 32 bits.

Pico de 64 bits

Tenga en cuenta que el grupo de aplicaciones / aplicación no se reiniciará entre las pruebas, sin embargo, el pico está constantemente allí y la respuesta es más alta que otras configuraciones.

Entonces, mi pregunta es: ¿alguien tiene alguna idea de por qué es esto? ¿Hay alguna configuración que deba establecer? ¿Alguien tiene algunos consejos sobre cómo puedo reducir lo que está causando la diferencia?

Servidor de producción actual: Win Server 2003 - 32 bits - IIS6

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

DavidMasters84
fuente

Respuestas:

4

Según la documentación, MS recomienda ejecutar grupos de aplicaciones de 32 bits en un servidor de 64 bits, ya que una aplicación web no debería usar más memoria de todos modos (internamente).

Las aplicaciones de 32 bits son siempre más eficaces: los punteros más pequeños significan menos memoria necesaria para un conjunto específico de instrucciones, lo que significa mejores relaciones de aciertos de caché.

Los procesos de 64 bits solo tienen un sentido limitado, cuando un proceso realmente necesita más memoria. si mantiene su front-end web haciendo exactamente eso (front-end), no hay razón para que necesite tanta memoria;)

Además, tiene sentido actualizar a versiones más eficaces. IIS6 absorbió el rendimiento de Big Tiem de manera similar: IIS 7.5 es MUCHO mejor, ESPECIALMENTE si ejecuta ASP.NET / código administrado.

TomTom
fuente
Interesante, gracias. ¿Supongo que no tienes un enlace al documento de MS con la recomendación solo para que pueda leer más? Lamentablemente, no puedo usar II7 + porque estoy obligado por Win2k3 :(
DavidMasters84
IIS.net - pautas de alojamiento;) Para iis 7,)
TomTom
"Como la aplicación web no debería usar más memoria de todos modos" suena como algo que dijo Bill Gates en los años 80 :) ¿Tiene un enlace para las pautas?
Fredrik Johansson
2

Intentamos esto en nuestro servidor Windows 2K3 y obtuve lo mismo, no estaba aquí en ese momento, pero tenía algo que ver con la forma en que MS implementó 64Bit .Net en 2K3 (no estoy seguro de qué, pero la persona que me dijo que es un MVP) Tomaré su palabra sobre eso.)

Y solo para hacerle saber que si se muda a Win2K8, podría ver lo mismo que yo hice con nuestros servidores aquí y obtener el mismo problema de rendimiento. Por lo que me han dicho y un poco de lectura para aprovechar 64Bit .Net, se recomienda el uso de tuberías integradas ( http://msdn.microsoft.com/en-us/magazine/cc135973.aspx )

Lo sentimos, esto no responde a su pregunta, pero pensé en hacerle saber que usted no es el único que ve este problema.

enterzero
fuente