Pregunta

Estoy realizando una prueba de estrés en una aplicación web .NET.Hice esto por 2 razones:Quería ver cómo era el rendimiento en condiciones reales y también asegurarme de que no habíamos pasado por alto ningún problema durante las pruebas.Teníamos 30 usuarios simultáneos en la aplicación usándola como lo harían durante el curso normal de sus trabajos.La mayoría de los usuarios tenían abiertas varias ventanas de la aplicación.

  • 10 usuarios:Nada mal
  • 20 usuarios:Ralentizando
  • 30 usuarios:Muy, muy lento pero sin tiempos de espera.

Fue cargado en el servidor de producción.Es un servidor virtual con un procesador Xeon de 2,66G Hz y 2 GB de RAM.Estamos usando Win2K3 SP2.Tenemos .NET 1.1 y 2.0 cargados y estamos usando SQLExpress SP1.

Volvimos a verificar los índices en todas las tablas posteriores y todos estaban como deberían estar.

¿Cómo podemos mejorar el rendimiento de nuestra aplicación?

¿Fue útil?

Solución

Esto es algo en lo que pensé, pero verifique cuánta memoria usa SQL Server cuando tiene más de 20 usuarios; una de las limitaciones de la versión Express es que es limitado a 1 GB de RAM.Por lo tanto, podría ser una simple cuestión de que no haya suficiente memoria disponible para el servidor debido a las limitaciones de Express.

Otros consejos

  1. Es posible que tenga problemas de concurrencia, dependiendo de cómo se ejecute su aplicación.Intente realizar sus lecturas con la palabra clave "nolock".

  2. Intente agregar alias de tabla para sus columnas (y evite el uso de SELECT *), esto ayuda a MSSQL, ya que no tiene que "adivinar" de qué tabla provienen las columnas.

  3. Si aún no lo ha hecho, pase a SPROC, esto permite a MSSQL indexar mejor sus datos para el conjunto de resultados normal de una consulta determinada.

  4. Intente seguir el plan de ejecución de su SPROCS para asegurarse de que estén utilizando los índices que cree que utilizan.

  5. Ejecute un seguimiento de su base de datos para ver cómo se ven las solicitudes entrantes.Es posible que notes que un SPROC en particular se ejecuta una y otra vez:generalmente es una buena señal almacenar en caché las respuestas del cliente si es posible.(listas de búsqueda, etc.)

Actualizar:Parece que SQL Server Express no es el problema ya que estaban usando el mismo producto en la versión anterior de la aplicación.Creo que el siguiente paso es identificar los obstáculos.Si está seguro de que está en la capa de la base de datos, le recomendaría realizar un seguimiento del perfilador y reducir el tiempo de ejecución de las consultas más caras.

Este es otro enlace que utilizo para recopilar estadísticas de las vistas de administración dinámica (DMV) de SQL Server y las funciones de administración dinámica (DMF) relacionadas.No estoy seguro de si podemos usarlo en la edición Express.Descubra datos ocultos para optimizar el rendimiento de las aplicaciones.


¿Está utilizando SQL Server Express para una aplicación web?Hasta donde yo sé, tiene algunas limitaciones para la implementación en producción.

Servidor SQL expreso es gratuito y puede ser redistribuido por ISV (sujeto a acuerdo). SQL Server Express es ideal para aprender y crear aplicaciones de escritorio y de servidor pequeño.Esta edición es la mejor opción para proveedores de software independientes, desarrolladores no profesionales y aficionados que crean aplicaciones cliente.Si necesita funciones de base de datos más avanzadas, SQL Server Express se puede actualizar sin problemas a versiones más sofisticadas de SQL Server.

Verificaría el rendimiento del disco en el servidor virtual.Si ese es uno de los problemas, recomendaría colocar la base de datos en un eje separado.

Actualizar:Muévase a un eje separado o actualice la versión de SQL Server como sugiere acertadamente Gulzar.

asegúrese de cerrar las conexiones después de recuperar los datos.

Ejecute SQL Profiler para ver las consultas enviadas a la base de datos.Busque consultas que sean:

  • devolver demasiados datos
  • mal construido
  • se están ejecutando demasiadas veces
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top