O Caso da Página ASP.NET Extremamente Lenta
O cliente estava enfrentando um problema de lentidão em um dos seus sites. Os usuários não conseguiam navegar entre as páginas alegando que a página ficava “em branco” e depois gerava timeout.
Coletamos um DUMP no momento da lentidão para analisarmos a causa da lentidão.
Comandos Executados
.load psscor2
Esse comando é utilizado para carregar a extensão de depuração de código gerenciado Psscor2 que é utilizada para ajudar no diagnóstico de problemas em aplicações do Framework .Net, para as versões 2.0, 3.0 e 3.5.
!threadpool
No momento em que o DUMP foi coletado a quantidade de threads em execução era superior a metade do valor limite do pool de threads.
Através do resultado é possível verificar que o problema de desempenho não é decorrente do consumo de processamento.
!eestack –ee
Esse comando permite investigar o callstack das threads gerenciadas. Observe que a maioria das threads estavam executando os seguintes métodos:
Praticamente todas as threads estavam executando os mesmos métodos.
kb
Através desse commando é possível analisar a pilha de chamadas não gerenciada dessas threads.
Observe que o callstack da thread acima mostra que ela está bloqueada por outra thread. O mesmo ocorre para a maioria das outras threads.
!syncblk
A figura abaixo mostra que a thread 156 está bloqueando (lock) as demais threads (348 no total).
A análise do callstack da thread 156 mostra que a ferramenta CA Wily Introscope é quem está controlando essa thread e não está liberando o LOCK.
O problema foi resolvido desativando o serviço CA Wily Introscope.
Comments
Anonymous
December 02, 2014
boa tarde pessoal, estou fazendo uma rede social, e contratei uma empresa indiana para desenvolver-la, porém não entendo muita coisa a respeito de desenvolvimento web. Então, após algumas consultas, vi que a tecnologia utilizada por eles é a ASP.NET + MVC5 + RAZOR. Banco de dados: NEO4j + CYPHER ENTITY+ LAMBDA (para manuseio de dados) Minha pergunta é: essa tecnologia irá suportar mais de 10 milhões de usuários? se não, o por que? se sim, o por que? Hoje, o sistema está praticamente pronto, está hospedado em um servidor Azure (A8) e está muito lento, e comecei a sentir que eles estão perdidos no que fizeram. existe algum recurso para deixar o site mais rápido? Meus custos com servidores serão mais caro por estar utilizando essas linguagens? Estamos pensando em abandonar o projeto com essa empresa Indiana, e contratar uma Brasileira que irá desenvolver em NODE.js (estarei fazendo a coisa certa ou devo permanecer acreditando que o ASP.NET poderá funcionar?) Alguém aí pode me ajudar? obrigado!Anonymous
December 02, 2014
boa tarde pessoal, estou fazendo uma rede social, e contratei uma empresa indiana para desenvolver-la, porém não entendo muita coisa a respeito de desenvolvimento web. Então, após algumas consultas, vi que a tecnologia utilizada por eles é a ASP.NET + MVC5 + RAZOR. Banco de dados: NEO4j + CYPHER ENTITY+ LAMBDA (para manuseio de dados) Minha pergunta é: essa tecnologia irá suportar mais de 10 milhões de usuários? se não, o por que? se sim, o por que? Hoje, o sistema está praticamente pronto, está hospedado em um servidor Azure (A8) e está muito lento, e comecei a sentir que eles estão perdidos no que fizeram. existe algum recurso para deixar o site mais rápido? Meus custos com servidores serão mais caro por estar utilizando essas linguagens? Estamos pensando em abandonar o projeto com essa empresa Indiana, e contratar uma Brasileira que irá desenvolver em NODE.js (estarei fazendo a coisa certa ou devo permanecer acreditando que o ASP.NET poderá funcionar?) Alguém aí pode me ajudar? obrigado! meu email: learnandiscovery@gmail.com