Compartir a través de


Solucionar los problemas de rendimiento reducido de aplicaciones web en Azure App Service

Este artículo lo ayuda a solucionar los problemas de rendimiento reducido en las aplicaciones de Azure App Service.

Si necesita más ayuda en cualquier momento de este artículo, póngase en contacto con los expertos de Azure en Soporte técnico de la comunidad de Azure. Como alternativa, puede registrar un incidente de soporte técnico de Azure. Vaya al soporte técnico de Azure y seleccione Enviar una incidencia de soporte técnico.

Síntoma

Al examinar la aplicación, las páginas se cargan lentamente y, en ocasiones, se agota el tiempo de espera.

Causa

Con frecuencia este problema se debe a problemas en el nivel de la aplicación, como, por ejemplo:

  • Solicitudes de red que tardan mucho tiempo
  • El código de la aplicación o las consultas de base de datos son ineficaces
  • Aplicación que usa memoria alta o CPU
  • Bloqueo de la aplicación debido a una excepción

Pasos para solucionar problemas

El procedimiento de solución de problemas se puede dividir en tres tareas distintas, en orden secuencial:

  1. Observación y supervisión del comportamiento de la aplicación
  2. Recopilación de datos
  3. Mitigación del problema

App Service ofrece diversas opciones en cada paso.

Observar y supervisar el comportamiento de la aplicación

Seguimiento del estado del servicio

Azure publica cada interrupción del servicio o degradación del rendimiento. Puede realizar un seguimiento del estado del servicio en Azure Portal. Para más información, consulte Visualización de las notificaciones de estado del servicio mediante Azure Portal.

Supervise la aplicación

Puede usar herramientas de supervisión en Azure Portal para averiguar si la aplicación tiene algún problema. En Supervisión en el menú de la barra lateral, seleccione Métricas. El menú desplegable Métrica muestra todas las métricas que puede agregar.

Algunas de las métricas que puede supervisar para la aplicación incluyen:

  • Espacio de trabajo de memoria promedio
  • Tiempo de CPU
  • Espacio de trabajo de memoria
  • Solicitudes
  • Tiempo de respuesta

Captura de pantalla de la sección métricas en Supervisión.

Para más información, consulte:

estado de extremo web

Si la aplicación se ejecuta en el plan de tarifa Estándar , App Service le permite supervisar dos puntos de conexión desde tres ubicaciones geográficas.

La supervisión de extremo configura pruebas web desde ubicaciones distribuidas geográficamente que prueban el tiempo de respuesta y el tiempo activo de direcciones URL web. La prueba realiza una operación HTTP GET en la dirección URL web para determinar el tiempo de respuesta y el tiempo de actividad desde cada ubicación. Cada ubicación configurada ejecuta una prueba cada cinco minutos.

El tiempo activo se supervisa a través de códigos de respuesta de HTTP y el tiempo de respuesta se mide en milisegundos. Una prueba de supervisión da error si el código de respuesta HTTP es mayor o igual que 400 o si la respuesta demora más de 30 segundos. Un extremo se considera disponible si sus pruebas de supervisión se realizan correctamente desde todas las ubicaciones especificadas.

Para configurarlo, consulte Cuotas y métricas de Azure App Service.

Supervisión del rendimiento de aplicaciones mediante extensiones

También puede supervisar el rendimiento de la aplicación mediante una extensión de sitio.

Cada aplicación de App Service proporciona un punto de conexión de administración extensible que permite usar un conjunto eficaz de herramientas implementadas como extensiones de sitio. Entre las extensiones se incluyen:

  • Editores de código fuente como GitHub Codespaces.
  • Las herramientas de administración de los recursos conectados como, por ejemplo, una base de datos de MySQL conectada a una aplicación.

Azure Application Insights es una extensión de sitio de supervisión de rendimiento que está también disponible. Para usar Application Insights, recompile el código con un SDK. También puede instalar una extensión que proporcione acceso a datos adicionales. El SDK permite escribir código para supervisar el uso y el rendimiento de la aplicación con más detalle. Para obtener más información, consulte Introducción a application Insights: observabilidad de OpenTelemetry.

Recopilación de datos

App Service ofrece la funcionalidad de diagnóstico para registrar información del servidor web y de la aplicación web. La información se divide en diagnósticos del servidor web y diagnósticos de aplicaciones.

Habilitar diagnósticos del servidor web

Puede habilitar o deshabilitar los siguientes tipos de registros:

  • Registro de errores detallado: información detallada del error para los códigos de estado HTTP que indican un error (código de estado 400 o superior). Esto puede contener información que puede ayudar a determinar por qué el servidor devolvió el código de error.
  • Seguimiento de solicitudes con error: información detallada sobre las solicitudes con errores, incluido un seguimiento de los componentes de IIS usados para procesar la solicitud y el tiempo necesario en cada componente. Esto puede ser útil si intenta mejorar el rendimiento de la aplicación o aislar lo que está causando un error HTTP específico.
  • Registro del servidor web: información sobre las transacciones HTTP mediante el formato de archivo de registro extendido W3C. Este informe resulta útil para determinar las métricas totales de la aplicación, como el número de solicitudes tramitadas o cuántas solicitudes proceden de una dirección IP específica.

Habilitar diagnósticos de la aplicación

Existen varias opciones para recopilar los datos de rendimiento de App Service, generar el perfil de la aplicación en directo desde Visual Studio, o modificar el código de la aplicación para registrar más información y seguimientos. Puede elegir las opciones en función de cuántos accesos tiene a la aplicación y de lo que ha observado con las herramientas de supervisión.

Uso de Application Insights Profiler

Puede habilitar Application Insights Profiler para empezar a capturar seguimientos detallados de rendimiento. Puede acceder a los registros capturados de hasta cinco días atrás cuando necesite investigar problemas. Puede elegir esta opción siempre que tenga acceso al recurso de Application Insights de la aplicación en Azure Portal.

Application Insights Profiler proporciona estadísticas sobre el tiempo de respuesta de cada llamada web y seguimientos que indican qué línea de código provocó las respuestas lentas. A veces, la aplicación de App Service es lenta porque cierto código no se escribe de forma eficaz. Por ejemplo, código secuencial que se puede ejecutar en paralelo y contenciones de bloqueo de base de datos no deseadas. Quitar estos cuellos de botella en el código aumenta el rendimiento de la aplicación, pero son difíciles de detectar sin configurar registros y seguimientos elaborados. Los seguimientos recopilados por Application Insights Profiler ayudan a identificar las líneas de código que ralentizan la aplicación y a superar este desafío para las aplicaciones de App Service.

Para más información, consulte Habilitación de .NET Profiler para aplicaciones de Azure App Service en Windows.

Establecimiento manual de los seguimientos de diagnóstico

Si tiene acceso al código fuente de la aplicación web, el diagnóstico de la aplicación permite capturar información generada por una aplicación web. Las aplicaciones de ASP.NET pueden usar la clase System.Diagnostics.Trace para registrar información en el registro de diagnóstico de aplicaciones. Sin embargo, debe cambiar el código y volver a implementar la aplicación. Este método es recomendable si la aplicación se ejecuta en un entorno de prueba.

Para obtener instrucciones detalladas sobre cómo configurar la aplicación para el registro, consulte Habilitación del registro de diagnóstico para aplicaciones en Azure App Service.

Uso de la herramienta de diagnósticos

App Service proporciona una experiencia inteligente e interactiva que le ayuda a solucionar los problemas de su aplicación sin necesidad de configurar nada. Al encontrarse con problemas en su aplicación, la herramienta de diagnóstico señala qué está mal y le guía a la información correcta para solucionar y resolver el problema con mayor rapidez y facilidad.

Para acceder al diagnóstico de App Service, vaya a la aplicación de App Service o del entorno de App Service en Azure Portal. En el menú de la barra lateral, seleccione Diagnosticar y resolver problemas.

Uso de la consola de depuración Kudu

App Service incluye una consola de depuración que puede usar para depurar, explorar o cargar archivos, e incluye también puntos de conexión JSON para obtener información sobre su entorno. A esta consola se le denomina Consola Kudu o Panel SCM para la aplicación.

Para acceder a este panel, vaya al sitio de Kudu.

Algunas de las cosas que proporciona Kudu son:

  • Configuración del entorno para la aplicación
  • Flujo de registros
  • Volcado de diagnóstico
  • Consola de depuración en la que puede ejecutar cmdlets de PowerShell y comandos básicos de DOS

Otra característica útil de Kudu es que, en caso de que la aplicación inicie excepciones de primera oportunidad, puede usar Kudu y la herramienta Procdump de SysInternals para crear volcados de memoria. Estos volcados de memoria son instantáneas del proceso y a menudo pueden ayudarle solucionar problemas más complicados de su aplicación.

Para más información sobre las características disponibles en Kudu, consulte Herramientas en línea de Windows Azure Websites que debe conocer.

Mitigación del problema

Escalar la aplicación

En App Service, para aumentar el rendimiento y la capacidad, puede ajustar la escala a la que está ejecutando su aplicación. El escalado vertical de una aplicación implica dos acciones relacionadas: cambiar el plan de App Service a un plan de tarifa superior y configurar determinadas opciones después de cambiar al plan de tarifa superior.

Para obtener más información sobre el escalado, consulte Escalado de una aplicación en Azure App Service.

Además, puede elegir ejecutar la aplicación en más de una instancia. El escalado no solo le proporciona una mayor capacidad de procesamiento, sino también algo de tolerancia a errores. Si el proceso se interrumpe en una instancia, las otras instancias seguirán atendiendo las solicitudes.

Puede establecer el escalado para que sea manual o automático.

Uso de la recuperación automática

La recuperación automática recicla el proceso de trabajo de la aplicación en función de la configuración que elija, como cambios de configuración, solicitudes, límites basados en memoria o el tiempo necesario para ejecutar una solicitud. La mayor parte del tiempo, reciclar el proceso es la forma más rápida de recuperarse de un problema. Aunque siempre puede reiniciar la aplicación directamente en Azure Portal, la recuperación automática lo hará automáticamente por usted. Todo lo que debe hacer es agregar algunos desencadenadores en web.config raíz de la aplicación. Esta configuración funcionaría de la misma manera incluso si la aplicación no es una aplicación de .NET.

Para obtener más información, consulte Recuperación automática de Sitios web de Azure.

Reiniciar la aplicación

Reiniciar suele ser la manera más sencilla de recuperarse de problemas que solo tienen lugar una vez. En Azure Portal, tiene las opciones para detener o reiniciar la aplicación.

Captura de pantalla de la barra de menús de la aplicación con botones de detención y reinicio.

También puede administrar la aplicación con Azure PowerShell. Para más información, consulte Administración de recursos de Azure mediante Azure PowerShell.