2011-01-05 16 views
8

Hola chicos, soy nuevo en Stack Overflow. He encontrado algunas excelentes respuestas aquí recientemente y es una gran comunidad. Tengo una pregunta difícil y disculpe la publicación larga.Ayuda/Consejos para aumentar el rendimiento en mi sitio web ASP.NET MVC 2

Ejecutar un sitio de la comunidad social para jugadores de cartas. Actualmente tengo más de 7.000 miembros y obtengo 2.000 visitantes/15k + páginas vistas por día. Recientemente, el sitio ha empezado a ralentizarse durante las horas pico del día y estoy empezando a pensar que mi sitio necesita algunas optimizaciones de rendimiento importantes en el código y la configuración. Realmente no quiero comprar un segundo servidor para ejecutar el sitio ya que estoy bastante seguro de que mi servidor actual debería poder manejar este tipo de carga fácilmente.

Durante las horas pico, cuando las páginas se cargan, todavía se cargan muy rápido. El problema es que muchas veces se agota el tiempo de espera y genera un error de "sitio web no disponible" en el navegador. Luego lo actualizas y se carga rápidamente. Luego, un par de vistas de página más adelante lo volverá a hacer. Mi CPU y el uso de la RAM ni siquiera son muy altos durante estos tiempos, así que debo creer que está en mi configuración de IIS o algo así. He hecho algunas búsquedas y no puedo encontrar ninguna buena respuesta o idea de lo que podría ser una solución.

Éstos son algunos datos de mi configuración:

  • ASP.NET MVC 2 w/caché de resultados y vistas parciales al almacenamiento en caché
  • IIS 7
  • Windows Web Server 2008 RC2 de 64 bits
  • AMD Athlon II X2
  • 4 GB de RAM

Mis páginas más pesados ​​en el th El sitio tiene bastantes lecturas de base de datos y muchas solicitudes de imágenes. No estoy seguro de si este es el problema, porque cuando una página se carga, es MUY rápido.

Compré un nuevo servidor que estoy construyendo y estaba pensando en cambiar todo a esto en su lugar. El nuevo servidor que acabo de recibir va a ejecutar un procesador Intel Xeon X3430 de 2,4 GHz de cuatro núcleos con HT y 8 GB de RAM.

Estoy buscando algunas cosas posibles que podría considerar para este problema y si hay posibles soluciones o configuraciones que podría implementar para detener los mensajes de "sitio web no disponible" y también ayudar a mi servidor a manejar futuros aumentos de tráfico como el sitio crece ¿La actualización del servidor a esta nueva marca la diferencia?

+0

Tal vez cuando se agota el tiempo de carga no guardada en la memoria caché y cuando la actualizas, usa el caché de salida y es por eso que es rápido. – Greg

+0

Déjame dar más información sobre eso. Aquí hay un ejemplo de cómo el sitio podría actuar en horas pico: voy al sitio y carga bien la página principal. Veo que alguien publica y se agota el tiempo con el error "no disponible". Actualizo, y puede que no vuelva a funcionar. Finalmente, carga la página normalmente. Voy a otra página y está bien. Intento publicar un comentario y se agota una o dos veces antes de publicarlo normalmente. Publiqué otro comentario y se publica al instante. Vuelvo a casa y agota el tiempo. Parece que se apaga al azar. Si es el almacenamiento en caché, ¿alguna idea de cómo solucionarlo? – davesters81

+0

Además, durante otros momentos del día, el sitio funciona tan bien como puede. Todo es muy rápido y receptivo.Por lo general, es alrededor del mediodía y más tarde en las noches noto la desaceleración y los tiempos muertos. También me pregunto si la configuración está configurada de alguna manera, solo permite un cierto número de conexiones o solicitudes a la vez. No tengo nada configurado en mi Web.Config para esto. – davesters81

Respuesta

3

Parece que esto es más un problema de IIS que su código o hardware. Hay una configuración predeterminada para conexiones simultáneas máximas por CPU y longitud de cola a la que puede llegar.

Ver Optimising IIS Performance y alguien con similar problem (y resolución).

+0

Sweet Gracias por los enlaces. Ese primer enlace es exactamente el tipo de cosa que estaba buscando pero no tuve suerte. Inhabilité el registro que estaba habilitado. Creo que lo más importante será aumentar la configuración de MaxConcurrentReqeustsPerCPU en aspnet.config. Esto es en lo que me confundí anteriormente, pero ese segundo enlace lo explicó mucho mejor. Le daré unos días y lo revisaré e informaré. También estoy trabajando en algunas imágenes y optimizaciones/fusiones de archivos de soporte que encontré en otro blog para reducir la cantidad de solicitudes necesarias por página. – davesters81

Cuestiones relacionadas