Créer des traces de performances côté client

De nombreuses raisons peuvent expliquer pourquoi les performances d’Azure Remote Rendering ne sont pas aussi bonnes que vous le souhaitez. Au-delà des performances spécifiques au rendu sur le serveur cloud, la qualité de la connexion réseau, en particulier, a une influence significative sur l’expérience. Pour profiler les performances du serveur, reportez-vous au chapitre Requêtes de performances côté serveur.

Ce chapitre porte sur l’identification des goulots d’étranglement côté client potentiels via performance traces.

Bien démarrer

Si la fonctionnalité Windows performance tracing est nouvelle pour vous, cette section aborde les termes et applications les plus importants pour démarrer.

Installation

Les applications utilisées pour effectuer un suivi avec Azure Remote Rendering (ARR) sont des outils à usage général : elles peuvent être utilisées pour l’ensemble du développement sous Windows. Elles sont disponibles dans le Windows Performance Toolkit. Pour y accéder, téléchargez le kit de déploiement et d’évaluation Windows.

Terminologie

Il est important de disposer d’un éventail de termes lorsque vous parlez des traces de performances. Les plus importantes sont :

  • Event Tracing for Windows (ETW – suivi d'événements pour Windows)
    ETW est un nom générique désignant la fonctionnalité de suivi au niveau du noyau, intégrée à Windows ; une fonctionnalité particulièrement efficace. Les applications qui prennent en charge ETW émettent des événements pour consigner des actions susceptibles d’aider à suivre les problèmes de performances, d’où le nom de suivi d’événements. Par défaut, le système d’exploitation émet déjà des événements pour les accès au disque, les basculements de tâches, etc. Les applications comme ARR émettent également des événements personnalisés, par exemple concernant les images supprimées, la latence réseau, etc.

  • Event Trace Logging (ETL – extraction, transformation et chargement)
    ETL décrit une trace collectée (journalisée) et est donc généralement utilisée comme extension de fichier pour les fichiers qui stockent les données de suivi. Ainsi, quand vous enregistrez une trace, vous obtenez généralement un fichier *.etl.

  • Windows Performance Recorder (WPR – enregistreur de performances Windows)
    WPR est le nom de l’application qui démarre et arrête l’enregistrement des traces d’événements. Il utilise un fichier de profil (*.wprp) qui configure les événements exacts à enregistrer. Ce type de fichier wprp est fourni avec le SDK ARR. Quand vous enregistrez des traces sur un PC de bureau, vous pouvez lancer directement WPR. Quand vous enregistrez une trace sur un appareil HoloLens, vous passez généralement par l’interface web.

  • Windows Performance Analyzer (WPA – analyseur de performances Windows)
    WPA est le nom de l’application GUI utilisée pour ouvrir des fichiers *.etl et parcourir les données pour identifier les problèmes de performances. WPA vous permet de trier les données selon différents critères, de les afficher de différentes façons, d’en examiner les détails et de corréler les informations.

  • Perfetto
    Perfetto est un outil de profilage système et de suivi d’applications pour Android et Linux, disponible depuis Android 9 Pie. Perfetto est également activé sur les appareils Meta Quest et Quest 2 (lorsque le mode développeur est activé), depuis le système d’exploitation v27. L’interface utilisateur Trace Viewer de Perfetto peut être utilisée pour ouvrir et analyser les traces Perfetto obtenues.

Si les traces ETL peuvent être créées sur n’importe quel appareil Windows (PC local, HoloLens, serveur cloud, etc.), elles sont généralement enregistrées sur le disque et analysées avec WPA sur un PC de bureau. Les fichiers ETL peuvent être envoyés à d’autres développeurs pour consultation. Les traces ETL peuvent inclure des informations sensibles, telles que des chemins d’accès aux fichiers et des adresses IP. Vous pouvez utiliser ETW de deux façons : pour enregistrer les traces ou pour les analyser. L’enregistrement des traces est simple et nécessite une configuration minimale. En revanche, l’analyse des traces nécessite une bonne compréhension de l’outil WPA et du problème que vous examinez. Des documents généraux pour apprendre WPA sont donnés ultérieurement, ainsi que des instructions pour interpréter des traces spécifiques à ARR.

Enregistrement d’une trace sur un PC local

Utilisez des traces sur PC pour vous familiariser avec les outils ou si vous rencontrez un problème où les restrictions matérielles de HoloLens ne sont pas pertinentes. Sinon, vous pouvez passer à la section Enregistrement d’une trace sur un HoloLens. En particulier, les problèmes de performances ARR doivent uniquement être suivis directement sur un HoloLens.

Configuration de WPR

  1. Lancez le Windows Performance Recorder à partir du menu Démarrer.
  2. Développez Plus d’options.
  3. Sélectionnez Ajouter des profils....
  4. Sélectionnez le fichier AzureRemoteRenderingNetworkProfiling.wprp, qui se trouve dans le SDK ARR, sous Tools/ETLProfiles. Le profil est répertorié dans WPR sous Mesures personnalisées. Assurez-vous qu’il s’agit du seul profil activé.
  5. Développez le Triage de premier niveau :
    • Si vous voulez uniquement capturer une trace rapide des événements de réseau d’ARR, désactivez cette option.
    • Si vous devez mettre en corrélation des événements de réseau d’ARR avec d’autres caractéristiques du système (utilisation du processeur ou de la mémoire, par exemple), activez cette option.
    • Les traces avec cette option activée mesurent probablement plusieurs gigaoctets et peuvent prendre beaucoup de temps à enregistrer et ouvrir dans WPA.

Votre configuration de WPR doit désormais ressembler à ceci :

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

Enregistrement

Sélectionnez Démarrer pour démarrer l’enregistrement d’une trace. Vous pouvez démarrer et arrêter l’enregistrement à tout moment. Vous n’avez pas besoin de fermer votre application préalablement. Comme vous pouvez le voir, il est inutile de spécifier l’application à suivre, car ETW enregistre une trace de l’ensemble du système. Le fichier wprp spécifie les types d’événements à enregistrer.

Sélectionnez Enregistrer pour arrêter l’enregistrement et spécifiez l’emplacement de stockage du fichier ETL.

Vous disposez maintenant d’un fichier ETL que vous pouvez ouvrir dans WPA.

Enregistrement d’une trace sur un appareil HoloLens

Pour enregistrer une trace sur un appareil HoloLens, démarrez votre appareil et entrez son adresse IP dans un navigateur pour ouvrir le portail d’appareil.

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

  1. Sur la gauche, accédez à Performance > Suivi des performances.
  2. Sélectionnez Profils personnalisés.
  3. Sélectionnez Browse....
  4. Sélectionnez le fichier AzureRemoteRenderingNetworkProfiling.wprp, qui se trouve dans le SDK ARR, sous Tools/ETLProfiles.
  5. Sélectionnez Démarrer la trace.
  6. L’appareil HoloLens enregistre à présent une trace. Veillez à déclencher les problèmes de performances que vous souhaitez examiner. Sélectionnez Ensuite Arrêter la trace.
  7. La trace est ensuite répertoriée en bas de la page web. Pour télécharger le fichier ETL, sélectionnez l’icône de disque à droite.

Vous disposez maintenant d’un fichier ETL que vous pouvez ouvrir dans WPA.

Enregistrement d’une trace sur un appareil Meta Quest

Pour enregistrer une trace sur un Quest, vous avez besoin d’un outil adb command-line.

  1. Assurez-vous que le mode développeur est activé sur votre Quest.
  2. Vérifiez que adb est autorisé à accéder à votre appareil en exécutant adb devices et en vérifiant que l’appareil est répertorié.
  3. Recherchez le fichier de configuration de traçage AzureRemoteRenderingPerfetto.txt à partir du Kit de développement logiciel (SDK) ARR sous Outils/ETLProfiles.
    • Par défaut, la configuration de trace est configurée pour s’exécuter pendant 30 secondes. Cette configuration peut être modifiée en modifiant la valeur duration_ms: 30000 dans le fichier AzureRemoteRenderingPerfetto.txt.
  4. Dans PowerShell, exécutez $config = cat "AzureRemoteRenderingPerfetto.txt" | adb shell perfetto -c - $config --txt --o "/data/misc/perfetto-traces/trace".
  5. Vous devriez voir une sortie similaire à cette ligne.
    [522.149] perfetto_cmd.cc:825     Connected to the Perfetto traced service, TTL: 30s
    
  6. L’appareil Quest enregistre désormais une trace. Démarrez votre application et déclenchez le problème que vous souhaitez examiner.
  7. Une fois l’enregistrement de trace terminé, une sortie similaire à cette ligne doit s’afficher.
    [552.637] perfetto_cmd.cc:946     Trace written into the output file
    
  8. Enfin, vous pouvez extraire le fichier de l’appareil en exécutant adb pull "/data/misc/perfetto-traces/trace" "outputTrace.pftrace".

Vous disposez maintenant d’un fichier de trace Perfetto que vous pouvez ouvrir sur l’interface utilisateur Trace Viewer de Perfetto.

Analyse des traces avec WPA

Concepts de base de WPA

Windows Performance Analyzer est l’outil standard permettant d’ouvrir des fichiers ETL et d’inspecter les traces. Le fonctionnement de WPA n’est pas expliqué dans cet article. Pour commencer, consultez les ressources suivantes :

  • Regardez les vidéos d’introduction pour une première vue d’ensemble.
  • Examinez l’onglet Prise en main de WPA lui-même, qui explique les étapes courantes. Consultez les articles disponibles. La rubrique « View Data », en particulier, offre une brève présentation de la création de graphes pour des données spécifiques.
  • Regardez les excellentes informations sur ce site web. Cependant, tout n’est pas pertinent pour les débutants.

Présentation des données sous forme de graphe

Nous vous recommandons de prendre connaissance des points suivants pour commencer à utiliser le suivi ARR.

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

L’image montre un tableau de données de suivi et une représentation de ces données sous forme de graphe.

Dans le tableau du bas, vous remarquez une barre jaune (or) et une barre bleue. Vous pouvez faire glisser ces barres et les déplacer comme vous le souhaitez.

Toutes les colonnes à gauche de la barre jaune sont interprétées comme clés. Les clés sont utilisées pour structurer l’arborescence dans la fenêtre située en haut à gauche. Ici, nous avons deux colonnes clés : « Nom du fournisseur » et « Nom de la tâche ». L’arborescence dans la fenêtre en haut à gauche comporte donc deux niveaux. Si vous réorganisez les colonnes ou ajoutez ou supprimez des colonnes dans la zone des clés, la structure de l’arborescence change.

Les colonnes à droite de la barre bleue sont utilisées pour l’affichage du graphe dans la fenêtre située en haut à droite. Généralement, seule la première colonne est utilisée. Cependant, certains modes de graphe nécessitent plusieurs colonnes de données. Pour pouvoir utiliser des graphes linéaires, vous devez définir le mode d’agrégation sur cette colonne. Utilisez « Moy » ou « Max ». Le mode d’agrégation permet de déterminer la valeur du graphe pour un pixel donné, quand un pixel couvre une plage incluant plusieurs événements. Vous pouvez observer cette propriété en définissant l’agrégation sur « Sum », puis en faisant un zoom avant et arrière.

Les colonnes du milieu n’ont pas de signification particulière.

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

Dans la fenêtre Generic Events View Editor, vous pouvez configurer toutes les colonnes à afficher, le mode d’agrégation, le tri et les colonnes utilisées comme clés ou pour les graphes. Dans l’exemple d’image, le Champ 2 est activé et les champs 3 à 6 sont désactivés. Le champ Field 2 est généralement le premier champ de données personnalisées d’un événement ETW, donc pour les événements « FrameStatistics » d’ARR, qui représentent une valeur de latence du réseau. Activez d’autres colonnes « Field » pour voir d’autres valeurs relatives à cet événement.

Présélections

Pour analyser correctement une trace, vous devez déterminer votre propre workflow ainsi que l’affichage de données que vous privilégiez. Toutefois, pour pouvoir obtenir rapidement une vue d’ensemble des événements spécifiques à ARR, nous incluons un profil de la Plateforme de protection de licence logicielle Windows et des fichiers prédéfinis dans le dossier Tools/ETLProfiles. Pour charger un profil complet, sélectionnez Profiles > Apply... dans la barre de menus de WPA, ou ouvrez le panneau My Presets (Window > My Presets), puis sélectionnez Import. Le précédent configure une configuration WPA complète comme dans l’image sous ce paragraphe. La seconde effectue uniquement des présélections pour les différentes configurations de vues et vous permet d’ouvrir rapidement une vue pour examiner une donnée d’événement ARR spécifique.

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

L’image montre des vues de différents événements spécifiques à ARR ainsi qu’une vue de l’utilisation globale du processeur.

Étapes suivantes