Herramientas de diagnóstico de rendimiento
Por Mike Rousos
En este artículo se enumeran las herramientas para diagnosticar problemas de rendimiento en ASP.NET Core.
Herramientas de diagnóstico de Visual Studio
Las herramientas de generación de perfiles y diagnóstico integradas en Visual Studio son un buen lugar para empezar a investigar problemas de rendimiento. Estas herramientas son eficaces y cómodas de usar desde el entorno de desarrollo de Visual Studio. Las herramientas permiten el análisis del uso de CPU, el uso de memoria y los eventos de rendimiento en aplicaciones de ASP.NET Core. La integración facilita la generación de perfiles en tiempo de desarrollo.
Puede encontrar más información en la documentación de Visual Studio.
Application Insights
Application Insights proporciona datos de rendimiento detallados para la aplicación. Application Insights recopila automáticamente datos sobre las tasas de respuesta, las tasas de error, los tiempos de respuesta de dependencia, etc. Application Insights admite el registro de métricas y eventos personalizados específicos de la aplicación.
Azure Application Insights proporciona varias maneras de proporcionar información sobre las aplicaciones supervisadas:
Mapa de aplicación: permite detectar cuellos de botella de rendimiento o zonas activas de errores en todos los componentes de las aplicaciones distribuidas.
El Explorador de métricas de Azure es un componente de Microsoft Azure Portal que permite trazar los gráficos, correlacionar visualmente las tendencias e investigar crestas y valles en valores de las métricas.
Hoja de rendimiento en el portal de Application Insights:
- Muestra los detalles de rendimiento de diferentes operaciones en la aplicación supervisada.
- Permite profundizar en una sola operación para comprobar todas las partes o dependencias que contribuyen a una larga duración.
- Profiler se puede invocar desde aquí para recopilar seguimientos de rendimiento a petición.
Application Insights Profiler de Azure permite la generación de perfiles normal y a petición de aplicaciones .NET. Azure Portal muestra seguimientos de rendimiento capturados con pilas de llamadas y rutas de acceso activas. Los archivos de seguimiento también se pueden descargar para un análisis más profundo mediante PerfView.
Application Insights se puede usar en diversos entornos:
- Optimizado para funcionar en Azure.
- Trabaja en producción, desarrollo y ensayo.
- Funciona localmente desde Visual Studio o en otros entornos de hospedaje.
Para más información sobre supervisión basada en código, consulte Application Insights para ASP.NET Core. Para más información sobre la supervisión sin código, consulte Supervisar el rendimiento de Azure App Service.
PerfView
PerfView es una herramienta de análisis de rendimiento creada por el equipo de .NET específicamente para diagnosticar problemas de rendimiento de .NET. PerfView permite el análisis del uso de CPU, la memoria y el comportamiento de GC, los eventos de rendimiento y el tiempo del reloj.
Para obtener más información sobre PerfView, consulte la guía del usuario disponible en la herramienta o en GitHub.
Kit de herramientas de rendimiento de Windows
El Kit de herramientas de rendimiento de Windows (WPT) consta de dos componentes: la Grabadora de rendimiento de Windows (WPR) y el Analizador de rendimiento de Windows (WPA). Las herramientas producen perfiles de rendimiento al detalle de las aplicaciones y sistemas operativos de Windows. WPT tiene formas más enriquecidas de visualizar los datos, pero su recopilación de datos es menos eficaz que la de PerfView.
PerfCollect
Aunque PerfView es una herramienta de análisis de rendimiento útil para escenarios de .NET, solo se ejecuta en Windows, por lo que no se puede usar para recopilar seguimientos de aplicaciones de ASP.NET Core que se ejecutan en entornos Linux.
PerfCollect es un script de Bash que usa herramientas nativas de generación de perfiles de Linux (Perf y LTTng) para recopilar seguimientos en Linux que PerfView puede analizar. PerfCollect es útil cuando los problemas de rendimiento se muestran en entornos Linux en los que PerfView no se puede usar directamente. En su lugar, PerfCollect puede recopilar seguimientos de aplicaciones de .NET Core que luego se analizan en un equipo Windows mediante PerfView.
Puede encontrar más información sobre cómo instalar y empezar a trabajar con PerfCollect en GitHub.
Otras herramientas de rendimiento de terceros
A continuación se enumeran algunas herramientas de rendimiento de terceros que son útiles en la investigación de rendimiento de las aplicaciones de .NET Core.
- MiniProfiler
- dotTrace y dotMemory de JetBrains
- VTune desde Intel