Foros del Web » Programación para mayores de 30 ;) » .NET »

Rendimiento malísimo en servidor!

Estas en el tema de Rendimiento malísimo en servidor! en el foro de .NET en Foros del Web. Buenos días a todos, sé que es una cuestión que se nos plantea a menudo, pero llevo semanas buscando información y no logro optimizar mi ...
  #1 (permalink)  
Antiguo 12/05/2011, 07:54
 
Fecha de Ingreso: noviembre-2008
Mensajes: 19
Antigüedad: 15 años, 5 meses
Puntos: 0
Rendimiento malísimo en servidor!

Buenos días a todos,

sé que es una cuestión que se nos plantea a menudo, pero llevo semanas buscando información y no logro optimizar mi aplicación, la desesperación llama a mi puerta.
Estoy desarrollando una pequeña aplicación web asp.net 2.0/ c# cuya funcionalidad básica es hacer una consulta a BBDD, y con la información obtenida
generar código html (un menú) que posteriormente insertaremos en la página aspx. Es decir, un menú dinámico. Esta página es abierta mediante un window.open de javascript situado en un directorio virtual diferente.

En local va bien, pero en producción funciona penosamente. Desde que me abre la nueva ventana, hasta que me muestra el contenido pasan unos 20 segundos para la primera carga POR CADA MÁQUINA. En posteriores recargas tarda 1 o 2 segundo. Si cierro la aplicación y la vuelvo a abrir, sigue funcionando bien, hasta que pase cierto tiempo ¿media hora o menos? que de nuevo la primera carga tarda mucho.
Como nota curiosa, cuando me abre la página, durante el lapso de tiempo que parece que "no hace nada" está el puntero del ratón con la flechita y el reloj de "trabajando", luego se quita el reloj y a los dos segundo por fín aparece la página, no sé que hace en ese tiempo.

El servidor es virtual, está montado bajo un iis 6.0 en windows server 2003 con su propio application pool. Hay otras aplicaciones funcionando decentemente.

En seguida pensaréis que el cuello de botella son las consultas a BBDD, pero lo he llevado más al límite, comento toda la generación del menú y las consultas y le meto a pelo la cadena que tiene que generar como variable. Es decir, únicamente quiero representar una cadena html que tengo en c# en un aspx.

Cosas que he probado sin resultado:

- Servidor
- Quitar el reciclado al application pool (parece que mejora)
- Ponerle como máximo 1mb de paginación al application pool
- Dejarle un máximo de 90% de la cpu (no llega a utilizar tanta)
- Poner el directorio virtual a sólo secuencia de scripts (esto parece que mejora)
- He montado la solución en otro servidor, quizás vaya algo mejor, pero sigue fatal
- Me he planteado si al ser servidores virtuales con peores velocidades de lectura/escritura en disco, podría tener que ver, pero eso afectaria a todas las aplicaciones no sólo a la mía.
- Habilito el traceo en servidor y desde el prerender hasta el end page_load en servidor me da tiempo de 2 o 3 segundos como mucho, y en realidad esta tardando más de 16-20'', según le da
- Código
- Intentar ponerle directivas de cacheo en servidor (sin resultado)
- Quitar el contenido del app_code y meterlo directamente en el .cs de la página, sin resultado. Finalmente ya ni útilizo esas funciones, ya sólo quiero que no tarde en representar una variable con contenido que tengo metida a pelo
- Al principio metía el contenido html en un control literal, ahora lo meto directamente como variable string de servidor
- La cadena html la genero con un stringbuilder y la pasaba como cadena, he intentado pasarla del stringbuilder a un HtmlTextWriter y de éste a la página aspx pero no mejora
- En el aspx, con javascript, creo dos muescas del tiempo al principio y al final del código, y como mucho me da tiempos de un segundo, es decir entre c# y asp+js como mucho debería tardar 4 segundos en el peor de los casos, que es lo que me puede tardar en local
- Me he llevado la página directamente al directorio virtual en el que se encuentra la página llamante, sigue tardando


Si tardase la primera generación de un único usuario, lo entendería, pero tardar una vez por usuario es rarísimo no??? He invertido más de un mes de trabajo en un código que requiere de este menú, así que imaginaos mi grado de desesperación.

Cualquier sugerencia será muy bienvenida, gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 14/05/2011, 00:58
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 5 meses
Puntos: 37
Respuesta: Rendimiento malísimo en servidor!

Que base de datos Usas? (Sql Server o Access debieran responder decentemente)
La base de datos esta instalada dentro del mismo servidor que la aplicacion?
El servidor donde esta instalada la base de datos (en el caso de Sql Server) tiene otras bases de datos (muchas de otras aplicaciones o clientes) (quiza sea un factur)

"Quitar el reciclado al application pool (parece que mejora)", asgurate que la aplicacion tenga su propio App Pool diferente al del resto de websites instalados en el mismo servidor web.

Finalmente, pruebalo en un servidor que no sea virtual
  #3 (permalink)  
Antiguo 16/05/2011, 00:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 19
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Rendimiento malísimo en servidor!

Cita:
Iniciado por wwwmaster Ver Mensaje
Que base de datos Usas? (Sql Server o Access debieran responder decentemente)
La base de datos esta instalada dentro del mismo servidor que la aplicacion?
El servidor donde esta instalada la base de datos (en el caso de Sql Server) tiene otras bases de datos (muchas de otras aplicaciones o clientes) (quiza sea un factur)

"Quitar el reciclado al application pool (parece que mejora)", asgurate que la aplicacion tenga su propio App Pool diferente al del resto de websites instalados en el mismo servidor web.

Finalmente, pruebalo en un servidor que no sea virtual
Muy buenas de nuevo.

Es una BBDD sql server sita en otro servidor, pero no puedo echarle la culpa a esa conexión ya que haciendo pruebas sin que requiera conectarse a BBDD me sigue tardando una eternidad. Todas nuestras aplicaciones tienen su propio app_pool, pero era un muy buen consejo. Por desgracia no tengo servidores no virtuales para probar... Estoy casi seguro que es una mezcla de alguna configuración de IIS y un acceso a disco lento.

Muchas gracias por tu tiempo!!

Etiquetas: rendimiento, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:41.