Tenho um site que fica travando a cada 5 ou 10 solicitações. Quando funciona, funciona rápido, mas se você deixar o navegador parado por alguns minutos e depois clicar em um link, ele simplesmente trava sem responder. O usuário precisa atualizar algumas vezes no navegador e então ele roda rapidamente novamente.
Estou executando o .NET 3.5, ASP.NET MVC 1.0 no IIS 7.0 (Windows Server 2008). O aplicativo Web se conecta a um banco de dados SQLServer 2005 que está sendo executado localmente na mesma instância. O banco de dados tem cerca de 300 Megas de RAM e o restante é gratuito para solicitações da web, presumo.
Está hospedado nos servidores em nuvem do GoGrid e esta instância possui 1 GB de RAM e 1 Core. Sei que não é muito, mas atualmente sou o único que usa o site e ainda recebo esses travamentos.
Eu sei que é uma coisa difícil de solucionar, mas esperava que alguém pudesse me indicar a direção certa sobre possíveis problemas de configuração do IIS ou quais seriam os requisitos médios "aproximados" de hardware usando essas tecnologias por 1.000 usuários, etc. para um servidor web, o mínimo que devo ter são 2 núcleos para que, se estiver ocupado, você ainda obtenha uma resposta. Ou talvez o pessoal do slashdot esteja certo e eu seja um idiota por usar o Windows, ponto final, haha. Porém, na minha experiência, geralmente é MEU erro de algoritmo/configuração e não culpa da tecnologia subjacente.
Quaisquer insights são apreciados.
Responder1
Você já tentou executar o aplicativo em um servidor real para ver se ele trava lá? Eu suspeitaria da plataforma de computação "nuvem" antes de pensar que seu aplicativo ou sistema operacional é um problema. Por que você diz que o SQL tem 300 MB de RAM = - é isso que ele está usando? Suas especificações dizem que você tem um servidor com 1 GB de RAM.
Responder2
Como Jim B indicou, você deveria ter testado em seu laboratório antes de implantar. Verifique o seguinte
IIS - Certifique-se de que o aplicativo tenha seu próprio espaço de processo de aplicativo.
Verifique o estado da sua sessão no asp.net.
Verifique a conexão entre o aplicativo (IIS) e o banco de dados, talvez a conexão com a nuvem esteja sendo interrompida.
Você pode ver os logs de eventos do IIS? Dê uma olhada nisso.
Responder3
Pelas informações fornecidas, parece que o problema mais provável é o núcleo único da VM, já que você está executando o servidor web e o banco de dados no sistema. Se sua empresa de hospedagem permitir adicionar/remover núcleos, adicione o segundo núcleo e verifique seu desempenho novamente.