Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo ajuda você a solucionar problemas de desempenho lento do aplicativo no Serviço de Aplicativo do Azure.
Se precisar de mais ajuda em qualquer ponto deste artigo, contacte os especialistas do Azure no Suporte da Comunidade do Azure. Como alternativa, você pode registrar um incidente de suporte do Azure. Vá para Suporte do Azure e selecione Enviar um tíquete de suporte.
Sintoma
Quando você navega no aplicativo, as páginas são carregadas lentamente e, às vezes, expiram.
Motivo
Esse problema geralmente é causado por problemas no nível do aplicativo, como:
- Solicitações de rede demorando muito tempo
- Código de aplicativo ou consultas de banco de dados sendo ineficientes
- Aplicação usando alta memória / CPU
- Falha do aplicativo devido a uma exceção
Passos de resolução de problemas
A solução de problemas pode ser dividida em três tarefas distintas, em ordem sequencial:
O Serviço de Aplicativo oferece várias opções em cada etapa.
Observe e monitore o comportamento do aplicativo
Monitorize o estado de saúde do serviço
O Azure publica cada interrupção de serviço ou degradação de desempenho. Você pode acompanhar a integridade do serviço no portal do Azure. Para obter mais informações, consulte Exibir notificações de integridade do serviço usando o portal do Azure.
Monitore seu aplicativo
Você pode usar ferramentas de monitoramento no portal do Azure para descobrir se seu aplicativo está tendo problemas. Em Monitoramento , no menu da barra lateral, selecione Métricas. O menu suspenso Métrica mostra todas as métricas que você pode adicionar.
Algumas das métricas que você pode querer monitorar para seu aplicativo incluem:
- Conjunto de trabalho de memória médio
- Tempo de CPU
- Conjunto de trabalho de memória
- Pedidos do
- Tempo de resposta
Para obter mais informações, consulte:
Monitorar o status do ponto de extremidade da Web
Se a sua aplicação estiver a ser executada na camada de preços Padrão, o App Service permite-lhe monitorizar dois endereços a partir de três localizações geográficas.
O monitoramento de pontos finais configura testes da Web a partir de locais distribuídos geograficamente que testam o tempo de resposta e o tempo de atividade de URLs da Web. O teste executa uma HTTP GET operação na URL para determinar o tempo de resposta e o tempo de disponibilidade de cada local. Cada local configurado executa um teste a cada cinco minutos.
O tempo de atividade é monitorado usando códigos de resposta HTTP e o tempo de resposta é medido em milissegundos. Um teste de monitoramento falhará se o código de resposta HTTP for maior ou igual a 400 ou se a resposta demorar mais de 30 segundos. Um ponto de extremidade é considerado disponível se seus testes de monitoramento forem bem-sucedidos em todos os locais especificados.
Para configurá-lo, consulte Cotas e métricas do Serviço de Aplicativo do Azure.
Monitoramento de desempenho de aplicativos usando extensões
Você também pode monitorar o desempenho do aplicativo usando uma extensão de site.
Cada aplicação do App Service fornece um endpoint de gestão extensível que permite usar um poderoso conjunto de ferramentas implementadas como extensões do site. As extensões incluem:
- Editores de código-fonte como o GitHub Codespaces.
- Ferramentas de gerenciamento para recursos conectados, como um banco de dados MySQL conectado a um aplicativo.
O Azure Application Insights é uma extensão de site de monitoramento de desempenho que também está disponível. Para usar o Application Insights, você reconstrói seu código com um SDK. Você também pode instalar uma extensão que fornece acesso a dados adicionais. O SDK permite que você escreva código para monitorar o uso e o desempenho do seu aplicativo com mais detalhes. Para obter mais informações, consulte Introdução ao Application Insights - observabilidade do OpenTelemetry.
Recolha de dados
O Serviço de Aplicativo fornece funcionalidade de diagnóstico para registrar informações do servidor Web e do aplicativo Web. As informações são separadas em diagnóstico do servidor Web e diagnóstico do aplicativo.
Habilitar o diagnóstico do servidor Web
Você pode habilitar ou desabilitar os seguintes tipos de logs:
- Registro detalhado de erros: informações detalhadas de erro para códigos de status HTTP que indicam uma falha (código de status 400 ou superior). Isso pode conter informações que podem ajudar a determinar por que o servidor retornou o código de erro.
- Rastreamento de solicitação com falha: informações detalhadas sobre solicitações com falha, incluindo um rastreamento dos componentes do IIS usados para processar a solicitação e o tempo gasto em cada componente. Isso pode ser útil se você estiver tentando melhorar o desempenho do aplicativo ou isolar o que está causando um erro HTTP específico.
- Registro em log do servidor Web: informações sobre transações HTTP usando o formato de arquivo de log estendido do W3C. Isso é útil ao determinar as métricas gerais do aplicativo, como o número de solicitações tratadas ou quantas solicitações são de um endereço IP específico.
Habilitar o diagnóstico de aplicativos
Há várias opções para coletar dados de desempenho do aplicativo do Serviço de Aplicativo, criar o perfil do aplicativo ao vivo do Visual Studio ou modificar o código do aplicativo para registrar mais informações e rastreamentos. Você pode escolher as opções com base em quanto acesso você tem ao aplicativo e o que você observou a partir das ferramentas de monitoramento.
Usar o Application Insights Profiler
Você pode habilitar o Application Insights Profiler para começar a capturar rastreamentos de desempenho detalhados. Você pode acessar rastreamentos capturados até cinco dias atrás, quando precisar investigar problemas. Você pode escolher essa opção desde que tenha acesso ao recurso Application Insights do aplicativo no portal do Azure.
O Application Insights Profiler fornece estatísticas sobre o tempo de resposta para cada chamada da Web e rastreamentos que indicam qual linha de código causou as respostas lentas. Às vezes, o aplicativo do Serviço de Aplicativo é lento porque determinado código não é escrito de maneira eficiente. Os exemplos incluem código sequencial que pode ser executado em contenções de bloqueio de banco de dados paralelas e indesejadas. Remover esses gargalos no código aumenta o desempenho do aplicativo, mas eles são difíceis de detetar sem configurar rastreamentos e logs elaborados. Os rastreamentos coletados pelo Application Insights Profiler ajudam a identificar as linhas de código que tornam o aplicativo mais lento e superam esse desafio para os aplicativos do Serviço de Aplicativo.
Para obter mais informações, consulte Habilitar o .NET Profiler para aplicativos do Serviço de Aplicativo do Azure no Windows.
Configurar rastreamentos de diagnóstico manualmente
Se você tiver acesso ao código-fonte do aplicativo Web, o diagnóstico do aplicativo permitirá capturar informações produzidas por um aplicativo Web. ASP.NET aplicativos podem usar a System.Diagnostics.Trace classe para registrar informações no log de diagnóstico do aplicativo. No entanto, você precisa alterar o código e reimplantar seu aplicativo. Esse método é recomendado se seu aplicativo estiver sendo executado em um ambiente de teste.
Para obter instruções detalhadas sobre como configurar a sua aplicação para registo, consulte Ativar registo de diagnóstico para aplicações no Azure App Service.
Use a ferramenta de diagnóstico
O Serviço de Aplicativo fornece uma experiência inteligente e interativa para ajudá-lo a solucionar problemas do seu aplicativo sem a necessidade de configuração. Quando você tem problemas com seu aplicativo, a ferramenta de diagnóstico aponta o que está errado para guiá-lo para as informações certas para solucionar e resolver o problema com mais facilidade e rapidez.
Para acessar o diagnóstico do Serviço de Aplicativo, navegue até seu aplicativo do Serviço de Aplicativo ou Ambiente do Serviço de Aplicativo no portal do Azure. No menu da barra lateral, selecione Diagnosticar e resolver problemas.
Use o Kudu Debug Console
O Serviço de Aplicativo vem com um console de depuração que você pode usar para depurar, explorar, carregar arquivos, bem como pontos de extremidade JSON para obter informações sobre seu ambiente. Este console é chamado de Kudu Console ou SCM Dashboard para seu aplicativo.
Você pode acessar este painel acessando seu site Kudu.
Algumas das coisas que Kudu fornece são:
- Configurações de ambiente para seu aplicativo
- Fluxo de log
- Relatório de diagnóstico
- Console de depuração no qual você pode executar cmdlets do PowerShell e comandos básicos do DOS
Outro recurso útil do Kudu é que, caso seu aplicativo esteja lançando exceções de primeira chance, você pode usar o Kudu e a ferramenta SysInternals Procdump para criar despejos de memória. Esses despejos de memória são instantâneos do processo e muitas vezes podem ajudá-lo a solucionar problemas mais complicados com seu aplicativo.
Para obter mais informações sobre os recursos disponíveis no Kudu, consulte Ferramentas online de sites do Windows Azure que você deve conhecer.
Atenuar o problema
Dimensione a aplicação
No Serviço de Aplicativo, para aumentar o desempenho e a taxa de transferência, você pode ajustar a escala na qual está executando seu aplicativo. A expansão de um aplicativo envolve duas ações relacionadas: alterar seu plano do Serviço de Aplicativo para um nível de preço mais alto e definir determinadas configurações depois que você mudar para o nível de preço mais alto.
Para obter mais informações sobre dimensionamento, consulte Dimensionar um aplicativo no Serviço de Aplicativo do Azure.
Além disso, você pode optar por executar seu aplicativo em mais de uma instância. A expansão não só fornece mais capacidade de processamento, mas também oferece alguma tolerância a falhas. Se o processo cair em uma instância, as outras instâncias continuarão a atender solicitações.
Você pode definir o dimensionamento como manual ou automático.
Use o auto-heal
A recuperação automática recicla o processo de trabalho do seu aplicativo com base nas configurações escolhidas, como alterações de configuração, solicitações, limites baseados em memória ou o tempo necessário para executar uma solicitação. Na maioria das vezes, reciclar o processo é a maneira mais rápida de se recuperar de um problema. Embora você sempre possa reiniciar o aplicativo diretamente no portal do Azure, o auto-heal faz isso automaticamente para você. Tudo o que você precisa fazer é adicionar alguns gatilhos no web.config raiz do seu aplicativo. Essas configurações funcionariam da mesma maneira, mesmo que seu aplicativo não seja um aplicativo .NET.
Para obter mais informações, consulte Auto-Healing Azure Web Sites.
Reinicie a aplicação
A reinicialização geralmente é a maneira mais simples de se recuperar de problemas únicos. No portal do Azure, você tem as opções para parar ou reiniciar seu aplicativo.
Você também pode gerenciar seu aplicativo usando o Azure PowerShell. Para obter mais informações, consulte Gerenciar recursos do Azure usando o Azure PowerShell.