Tengo una web que se cuelga cada 5 o 10 solicitudes. Cuando funciona, lo hace rápido, pero si dejas el navegador reposar durante un par de minutos y luego haces clic en un enlace, simplemente se cuelga sin responder. El usuario tiene que presionar actualizar varias veces en el navegador y luego vuelve a funcionar rápidamente.
Estoy ejecutando .NET 3.5, ASP.NET MVC 1.0 en IIS 7.0 (Windows Server 2008). La aplicación web se conecta a una base de datos SQLServer 2005 que se ejecuta localmente en la misma instancia. La base de datos tiene unos 300 megas de RAM y supongo que el resto está libre para solicitudes web.
Está alojado en los servidores en la nube de GoGrid y esta instancia tiene 1 GB de RAM y 1 núcleo. Me doy cuenta de que no es mucho, pero actualmente soy el único que usa el sitio y sigo recibiendo estos bloqueos.
Sé que es difícil solucionar el problema, pero esperaba que alguien pudiera orientarme en la dirección correcta sobre posibles problemas de configuración de IIS o cuáles serían los requisitos de hardware promedio "aproximados" al usar estas tecnologías por cada 1000 usuarios, etc. para un servidor web, el mínimo que debería tener son 2 núcleos para que, si está ocupado, aún recibas una respuesta. O tal vez la gente de slashdot tenga razón y soy un idiota por usar Windows y punto, jajaja. Sin embargo, en mi experiencia, generalmente es MI error de algoritmo/configuración y no culpa de la tecnología subyacente.
Se agradece cualquier idea.
Respuesta1
¿Has intentado ejecutar la aplicación en un servidor real para ver si se bloquea allí? Sospecharía de la plataforma informática "en la nube" antes de pensar que su aplicación o el sistema operativo son un problema. ¿Por qué dices que SQl tiene 300 Mb de ram? ¿Es eso lo que está usando? Tus especificaciones dicen que tienes un servidor con 1 gb de ram.
Respuesta2
Como indicó Jim B, debería haberlo probado en su LAB antes de implementarlo. Comprueba lo siguiente
IIS: asegúrese de que la aplicación tenga su propio espacio de proceso de solicitud.
Verifique el estado de su sesión en asp.net.
Verifique la conexión entre la aplicación (IIS) y la base de datos; tal vez se esté interrumpiendo la conexión a la nube.
¿Puedes ver los registros de eventos de IIS? Mira eso.
Respuesta3
Según la información proporcionada, parece que el problema más probable es el núcleo único de la máquina virtual, ya que está ejecutando el servidor web y la base de datos en el sistema. Si su empresa de hosting le permite agregar/eliminar núcleos, agregue el segundo núcleo y verifique su rendimiento nuevamente.