Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Diagnosticar los problemas de rendimiento de su aplicación puede resultar difícil, especialmente cuando se ejecuta en un entorno de producción en la nube dinámica. La lentitud en las respuestas de una aplicación puede deberse a la infraestructura, el marco o el código de la aplicación que controla la solicitud en la canalización.
Optimizaciones de código, un servicio basado en inteligencia artificial en Azure Application Insights, funciona junto con Application Insights Profiler para .NET para detectar problemas de rendimiento de uso de CPU y memoria en un nivel de código y proporcionar recomendaciones sobre cómo corregirlos.
Tome decisiones informadas y optimice el código mediante información y datos de rendimiento en tiempo real recopilados del entorno de producción.
Puede revisar las optimizaciones de código en Azure Portal.
Optimizaciones de código y Application Insights Profiler para .NET
Los generadores de perfiles de .NET y optimizaciones de código funcionan conjuntamente para proporcionar un enfoque holístico para la detección de problemas de rendimiento.
Optimizaciones de código
Optimizaciones de código identifica, analiza y resuelve los datos de generación de perfiles recopilados por Application Insights Profiler para .NET. A medida que .NET Profiler carga datos en Application Insights, nuestro modelo de aprendizaje automático analiza algunos de los datos para encontrar dónde se puede optimizar el código de la aplicación. Optimizaciones de código:
- Muestra los datos agregados recopilados a lo largo del tiempo.
- Conecta datos con los métodos y funciones del código de la aplicación.
- Reduce las causas gracias a la búsqueda de cuellos de botella dentro del código.
- Proporciona correcciones de rendimiento de nivel de código basadas en información.
Identificar
Con la página de información general consolidada de optimizaciones de código, puede ver todas las recomendaciones de optimización de código en las suscripciones de Azure y los recursos de Application Insights en el portal de Azure. Identifique los cuellos de botella en el código y revise las recomendaciones de nivel de código para entornos de desarrollo, pruebas, preproducción y producción.
Analizar
Una vez recopilados los datos del entorno, Optimizaciones de código proporciona recomendaciones de nivel de código cada hora. De forma predeterminada, la vista de datos agregada muestra una ventana gradual de 24 horas de problemas identificados recientemente, con un historial de 30 días para que pueda revisar y analizar eventos anteriores.
Resolver
Después de identificar y analizar los resultados de optimización de código, puede resolver estos problemas en su código mediante las extensiones de optimización de código para Visual Studio y Visual Studio Code. Con estas extensiones, interactúe con GitHub Copilot para recibir una corrección de código fundamentada en la información sobre optimizaciones de código.
También puede crear un problema de GitHub desde la página Optimizaciones de código de Azure Portal y asignarlo al agente de codificación de GitHub Copilot. Desde allí, GitHub Copilot abre una solicitud de incorporación de cambios e inserta confirmaciones de cambio de código basadas en la información de optimización de código.
Vídeo de demostración
Application Insights Profiler para .NET
.NET Profiler se centra en el seguimiento de solicitudes específicas, hasta el milisegundo. Proporciona una excelente "vista general" de los problemas dentro de la aplicación y los procedimientos recomendados generales para solucionarlos.
Con Application Insights Profiler para .NET, puede capturar, identificar y ver los seguimientos de rendimiento de la aplicación que se ejecuta en Azure, independientemente del escenario. El proceso de seguimiento de .NET Profiler se produce automáticamente, a escala, y no afecta negativamente a sus usuarios. .NET Profiler identifica:
- Tiempos de respuesta medio, más rápido y más lento para cada solicitud web realizada por los clientes.
- La ruta de acceso del código "activo" que tarda más tiempo cuando se atiende una solicitud web determinada.
Habilite Profiler para .NET en todas las aplicaciones de Azure para recopilar datos con los siguientes desencadenadores:
- Desencadenador de muestreo: inicia Profiler aleatoriamente una vez cada hora aproximadamente durante 2 minutos.
- Desencadenador de CPU: inicia Profiler cuando el porcentaje de uso de CPU supera el 80 %.
- Desencadenador de memoria: inicia Profiler cuando el uso de memoria es superior al 80 %.
Cada uno de estos desencadenadores se puede configurar, habilitar o deshabilitar.
Costo y sobrecarga
Las optimizaciones de código se generan automáticamente después de habilitar Application Insights Profiler para .NET. De manera predeterminada, generador de perfiles recopila activamente seguimientos cada hora durante 30 segundos o durante períodos de uso elevado de CPU o memoria durante 30 segundos. Los seguimientos por hora (denominados muestreo) son excelentes para el ajuste proactivo, mientras que los seguimientos elevados de CPU y memoria (denominados desencadenadores) son útiles para la solución de problemas reactiva.
Nota:
Cuando Application Insights Profiler para .NET se ejecuta activamente y recopila seguimientos, normalmente agrega entre el 5 % y el 15 % de la sobrecarga de CPU y memoria al servidor.
No hay ningún costo adicional por almacenar los datos capturados por .NET Profiler. Los datos se eliminan automáticamente después de 15 días.
Algunas características de optimización de código (como sugerencias de corrección de nivel de código) requieren Copilot para GitHub o Copilot para Azure.
Habilitación de .NET Profiler
A medida que evolucionan los marcos y los servicios de Azure, puede habilitar .NET Profiler para las aplicaciones .NET que se ejecutan en Azure a través de varias opciones.
Servicio de Azure | Cómo habilitar | Detalles |
---|---|---|
Mayoría de los servicios de Azure | Cambio de código en la aplicación (más universal) |
Si la aplicación .NET se ejecuta en variantes de los servicios PaaS o contenedores de Azure, puede elegir entre dos opciones para habilitar .NET Profiler: - Application Insights Profiler para ASP.NET Core que usa el SDK de Application Insights o - NuevoPerfilador OpenTelemetry de Azure Monitor para .NET (versión preliminar), que usa la Distribución OpenTelemetry de Azure Monitor |
Azure App Service | No hay ningún cambio de código para la aplicación | Dado que Profiler está preinstalado, puede habilitar Profiler para .NET en el portal para: - Azure App Service: aplicación .NET en Windows - Azure Functions: plan de App Service |
Máquinas virtuales | No hay ningún cambio de código para la aplicación | Una vez que haya habilitado el SDK de Application Insights en el código de la aplicación, puede habilitar Profiler para .NET en la plantilla de ARM. - Máquinas virtuales de Azure y conjuntos de escalado de máquinas virtuales para Windows - Azure Service Fabric |
Detalles y ejemplos para habilitar Profiler para .NET
- Azure App Service: aplicación .NET en Windows
- Azure App Service: aplicación .NET en Linux
- Contenedores:
- Azure Container Apps
- Azure Kubernetes Services
- Azure Container Instances (Instancias de Contenedores de Azure)
- Máquinas Virtuales de Azure y Conjuntos de Escala de Máquinas Virtuales para Windows
- Azure Functions: plan de App Service
- Azure Service Fabric
Nota:
También puede usar Java Profiler para Azure Monitor Application Insights, actualmente en versión preliminar.
Regiones soportadas
Las Optimizaciones de Código están disponibles en las mismas regiones que Application Insights. Es posible comprobar las regiones disponibles mediante el siguiente comando:
az account list-locations -o table
Se puede establecer una región explícita mediante el uso de cadenas de conexión. Obtenga más información sobre las cadenas de conexión con ejemplos.
Limitaciones
Generación de perfiles de aplicaciones web:
- Aunque puede usar .NET Profiler sin coste adicional, la aplicación web debe estar, como mínimo, hospedada en el nivel Básico de la característica Web Apps de Azure App Service.
- Solo puede adjuntar un único profiler a cada aplicación web.
Solución de problemas
Generador de perfiles
Si ha habilitado el Profiler para .NET, pero no ve rastros, consulte la guía de solución de problemas.
Optimizaciones de código
¿Algún problema? Consulte la guía de resolución de problemas de optimización de código para soluciones de escenarios.
Pasos siguientes
Aprenda a habilitar .NET Profiler con optimizaciones de código en el servicio de Azure:
- ASP.NET aplicación Core hospedada en Windows en Azure App Service
- Generación de perfiles de aplicaciones web de Azure en Linux de ASP.NET Core con Application Insights Profiler
- Aplicación Azure Functions
- Aplicación de Azure Service Fabric
- Máquinas virtuales de Azure
- Aplicación de ASP.NET Core ejecutándose en contenedores