Creación de seguimientos del rendimiento en el cliente

Hay muchas razones por las que el rendimiento de Azure Remote Rendering puede no ser tan bueno como se esperaba. Además del rendimiento de representación puro en el servidor en la nube, la calidad de la conexión de red tiene una influencia especialmente significativa en la experiencia. Para generar perfiles del rendimiento del servidor, consulte el capítulo Consultas de rendimiento del lado servidor.

Este capítulo se centra en cómo identificar los posibles cuellos de botella del cliente mediante performance traces.

Introducción

Si no está familiarizado con la funcionalidad performance tracing de Windows, en esta sección se indican los términos y las aplicaciones fundamentales para comenzar.

Instalación

Las aplicaciones que se usan para realizar el seguimiento con Azure Remote Rendering (ARR) son herramientas de uso general que se pueden utilizar para todo el desarrollo de Windows. Se proporcionan con el Kit de herramientas de rendimiento de Windows. Para obtenerlo, descargue Windows Assessment and Deployment Kit.

Terminología

Un intervalo de términos es importante cuando se habla de seguimientos de rendimiento. Las más importantes son:

  • Event Tracing for Windows (ETW: Seguimiento de eventos para Windows)
    ETW es el nombre de la eficaz herramienta de seguimiento del nivel de kernel que se integra en Windows. Las aplicaciones que admiten ETW emiten eventos para registrar las acciones que pueden ayudar a realizar un seguimiento de los problemas de rendimiento, de ahí el nombre de seguimiento de eventos. De forma predeterminada, el sistema operativo ya emite eventos para elementos como los accesos al disco, los modificadores de tareas y otros similares. Las aplicaciones como ARR también emiten eventos personalizados, por ejemplo, los fotogramas que se han descartado, el retraso de la red, etc.

  • Event Trace Logging (ETL: extracción, transformación y carga de datos)
    ETL describe un seguimiento recopilado (registrado) y, por lo tanto, se suele usar como extensión de archivo para los archivos que almacenan los datos de seguimiento. Así, cuando realice un seguimiento, después, normalmente, tiene un archivo *.etl.

  • Windows Performance Recorder (WPR: registro de rendimiento de Windows)
    WPR es el nombre de la aplicación que inicia y detiene la grabación de seguimiento de eventos. WPR toma un archivo de perfil (*.wprp) que configura los eventos exactos que se van a registrar. Este tipo de archivo wprp se proporciona con el SDK de ARR. Al realizar seguimientos en un equipo de escritorio, puede iniciar WPR directamente. En cambio, cuando realiza un seguimiento en HoloLens, normalmente se hace mediante la interfaz web.

  • Windows Performance Analyzer (WPA: analizador de rendimiento de Windows)
    WPA es el nombre de la aplicación GUI que se usa para abrir archivos *.etl y examinar los datos a fin de identificar los problemas de rendimiento. WPA le permite ordenar los datos por varios criterios, mostrarlos de varias maneras, profundizar en los detalles y correlacionar la información.

  • Perfetto
    Perfetto es una herramienta de generación de perfiles del sistema y de seguimiento de aplicaciones para Android y Linux, que está disponible desde Android 9 Pie. Perfetto también está habilitado en los dispositivos Meta Quest y Quest 2 (cuando el modo de desarrollador está habilitado), desde el sistema operativo v27. La interfaz de usuario del Visor de seguimiento de Perfetto se puede usar para abrir y analizar los seguimientos de Perfetto resultantes.

Aunque los seguimientos de ETL se pueden crear en cualquier dispositivo Windows (equipo local, HoloLens, servidor en la nube, etc.), normalmente se guardan en el disco y se analizan con WPA en un equipo de escritorio. Los archivos ETL se pueden enviar a otros desarrolladores para que los examinen. Los seguimientos ETL pueden incluir información confidencial, como rutas de acceso de archivo y direcciones IP. Puede usar ETW de dos maneras: para grabar o para analizar los seguimientos. La grabación de seguimientos es sencilla y requiere una configuración mínima. Por otro lado, el análisis de los seguimientos requiere un conocimiento aceptable tanto de la herramienta WPA como del problema que se esté investigando. El material general para el aprendizaje de WPA se proporcionará a continuación, así como directrices para interpretar los seguimientos específicos de ARR.

Grabación de un seguimiento en un equipo local

Use seguimientos en el equipo para familiarizarse con las herramientas o si tiene un problema en el que las restricciones de hardware de HoloLens no son relevantes. Si no, puede ir directamente a la sección Grabación de un seguimiento en una instancia de HoloLens. Se debe realizar un seguimiento de los problemas de rendimiento de ARR directamente en HoloLens.

Configuración de WPR

  1. Inicie Windows Performance Recorder en el menú Inicio.
  2. Expanda Más opciones.
  3. Seleccione Agregar perfiles....
  4. Seleccione el archivo AzureRemoteRenderingNetworkProfiling.wprp. Puede encontrar este archivo en el SDK de ARR en Tools/ETLProfiles. El perfil aparece en WPR en Medidas personalizadas. Asegúrese de que es el único perfil habilitado.
  5. Expanda Evaluación de prioridades del primer nivel.
    • Si solo desea capturar un seguimiento rápido de los eventos de red de ARR, deshabilite esta opción.
    • Si tiene que correlacionar eventos de red de ARR con otras características del sistema, como el uso de la CPU o la memoria, habilite esta opción.
    • Lo más probable es que los seguimientos con esta opción habilitada tengan un tamaño de varios gigabytes y tarden mucho tiempo en guardarse y abrirse en WPA.

Después, la configuración de WPR debe ser similar a la siguiente:

Screenshot of the Windows Performance Recorder with a selected AzureRemoteRenderingNetworkProfiling profile.

Grabando

Seleccione Iniciar para iniciar la grabación de un seguimiento. Puede iniciar y detener la grabación en cualquier momento; no es necesario cerrar la aplicación antes. Como puede ver, no es necesario especificar la aplicación cuyo seguimiento se va a realizar, ya que ETW registra siempre un seguimiento para todo el sistema. El archivo wprp especifica qué tipos de eventos se van a registrar.

Seleccione Guardar para detener la grabación y especifique dónde desea almacenar el archivo ETL.

Ahora tiene un archivo ETL que puede abrir en WPA.

Grabación de un seguimiento en un HoloLens

Para grabar un seguimiento en un HoloLens, inicie el dispositivo y escriba su dirección IP en un explorador para abrir el Portal de dispositivos.

Screenshot of the Performance Tracing webpage in the HoloLens Device Portal.

  1. A la izquierda, vaya a Performance > Performance Tracing (Rendimiento > Seguimiento de rendimiento).
  2. Seleccione Perfiles personalizados.
  3. Seleccione Browse....
  4. Seleccione el archivo AzureRemoteRenderingNetworkProfiling.wprp. Puede encontrar este archivo en el SDK de ARR en Tools/ETLProfiles.
  5. Seleccione Iniciar seguimiento.
  6. Ahora HoloLens está registrando un seguimiento. Asegúrese de desencadenar los problemas de rendimiento que desee investigar. A continuación, seleccione Detener seguimiento.
  7. A continuación, el seguimiento aparece en la parte inferior de la página web. Para descargar el archivo ETL, seleccione el icono de disco en el lado derecho.

Ahora tiene un archivo ETL que puede abrir en WPA.

Grabar un seguimiento en un dispositivo Meta Quest

Para registrar un seguimiento en un Quest, necesita una herramienta de línea de comandos de adb.

  1. Asegúrese de que el modo de desarrollador esté habilitado en su Quest.
  2. Asegúrese de que adb está autorizado para acceder al dispositivo ejecutando adb devices y comprobando que el dispositivo aparece en la lista.
  3. Busque el archivo de configuración de seguimiento AzureRemoteRenderingPerfetto.txt del SDK de ARR en Herramientas/ETLProfiles.
    • De forma predeterminada, la configuración de seguimiento está configurada para ejecutarse durante 30 segundos. Esta configuración se puede modificar editando el valor duration_ms: 30000 en el archivo AzureRemoteRenderingPerfetto.txt.
  4. En PowerShell, ejecute $config = cat "AzureRemoteRenderingPerfetto.txt" | adb shell perfetto -c - $config --txt --o "/data/misc/perfetto-traces/trace".
  5. Debería mostrarse una salida similar a esta línea.
    [522.149] perfetto_cmd.cc:825     Connected to the Perfetto traced service, TTL: 30s
    
  6. El dispositivo Quest ahora está grabando un seguimiento. Inicie la aplicación y desencadene el problema que desea investigar.
  7. Cuando finalice la grabación de seguimiento, debería ver una salida similar a esta línea.
    [552.637] perfetto_cmd.cc:946     Trace written into the output file
    
  8. Por último, puede extraer el archivo del dispositivo ejecutando adb pull "/data/misc/perfetto-traces/trace" "outputTrace.pftrace".

Ahora tiene un archivo de seguimiento de Perfetto que puede abrir en la interfaz de usuario del Visor de seguimiento de Perfetto.

Análisis de seguimientos con WPA

Aspectos básicos de WPA

El Analizador de rendimiento de Windows es la herramienta estándar para abrir los archivos ETL e inspeccionar los seguimientos. La explicación de cómo funciona WPA está fuera del ámbito de este artículo. Para empezar, consulte estos recursos:

  • Vea los vídeos introductorios para obtener una primera información general.
  • Examine la pestaña Introducción en WPA, que explica los pasos comunes. Vea los artículos disponibles. Especialmente, en "View Data" (Ver datos), obtiene una introducción rápida sobre cómo crear grafos para datos específicos.
  • Mire la información excelente en este sitio web, sin embargo, no toda es pertinente para principiantes.

Inclusión de datos en grafos

Para empezar a trabajar con el seguimiento de ARR, es conveniente conocer los siguientes elementos.

Screenshot of an example graph in the Windows Performance Analyzer tool.

La imagen muestra una tabla de datos de seguimiento y una representación gráfica de esos mismos datos.

En la tabla de la parte inferior, observe la barra amarilla (dorada) y la barra azul. Puede arrastrarlas y colocarlas en cualquier posición.

Todas las columnas situadas a la izquierda de la barra amarilla se interpretan como claves. Las claves se utilizan para estructurar el árbol en la ventana superior izquierda. Aquí tenemos dos columnas clave, "Nombre de proveedor" y "Nombre de tarea". Por lo tanto, la estructura de árbol de la ventana superior izquierda tiene dos niveles de profundidad. Si se reordenan las columnas o se agregan o quitan columnas del área de claves, la estructura de la vista de árbol cambia.

Las columnas situadas a la derecha de la barra azul se usan para la presentación del grafo en la ventana superior derecha. La mayoría de las veces, solo se usa la primera columna, pero algunos modos de grafo requieren varias columnas de datos. Para que los grafos de líneas funcionen, debe establecerse el modo de agregación en esa columna. Use "Avg" o "Max." El modo de agregación se usa para determinar el valor del grafo en un píxel determinado, cuando un píxel cubre un intervalo con varios eventos. Para observar esta propiedad, establezca la agregación en "Sum" y, a continuación, acerque y aleje el grafo.

Las columnas del centro no tienen ningún significado especial.

Screenshot of the Generic Events View Editor in the Windows Performance Analyzer tool.

En el editor de la vista de eventos genéricos puede configurar todas las columnas que se van a mostrar, el modo de agregación, la ordenación y qué columnas se usan como claves o para grafos. En la imagen de ejemplo, el campo 2 está habilitado y los campos 3 a 6 están deshabilitados. El campo 2 suele ser el primero de datos personalizados de un evento ETW y, por tanto, para los eventos ARR "FrameStatistics", que representan algún valor de latencia de red. Habilite otras columnas "Campo" para ver más valores de este evento.

Valores preestablecidos

Para analizar correctamente un seguimiento, debe establecer su propio flujo de trabajo y la presentación de datos que prefiera. Sin embargo, para poder obtener una rápida información general de los eventos específicos de ARR, se incluyen archivos de perfil y valores preestablecidos de la Plataforma de protección de software de Windows en la carpeta Tools/ETLProfiles. Para cargar un perfil completo, seleccione Perfiles > Aplicar... en la barra de menús de WPA o abra el panel My Presets (Mis valores preestablecidos) (Window > My Presets) (Ventana > Mis valores preestablecidos) y seleccione Importar. En el primer caso, se establece una configuración de WPA completa como en la imagen siguiente de este párrafo. El último caso solo hace que estén disponibles los valores preestablecidos para las distintas configuraciones de vista y le permite abrir rápidamente una vista para ver una parte específica de los datos de eventos de ARR.

Screenshot of the Windows Performance Analyzer tool with the ARR presets applied.

La imagen muestra vistas de varios eventos específicos de ARR más una vista del uso total de la CPU.

Pasos siguientes