Partager via


Analyse des problèmes de performances USB à l’aide de Xperf et Netmon

Cette rubrique fournit des informations sur la façon d’afficher la chronologie des événements capturés dans un journal ETW USB.

Xperf fournit un ensemble d’événements de noyau pour analyser les problèmes de performances. Il enregistre ces événements et les présente dans des graphiques.

Si vous connaissez à la fois xperf et les événements ETW USB, vous pouvez créer un journal ETW USB et un journal Xperf d’un scénario de problème, fusionner les deux fichiers journaux et les analyser ensemble. L’utilisation de Xperf et Netmon ensemble vous permet d’afficher les événements système (Xperf) et les événements USB (Netmon) pour un scénario donné.

Démarrez les deux traces en parallèle en émettant les commandes suivantes à partir d’une invite de commandes avec élévation de privilèges :

Xperf –on Diag

Logman start Usbtrace -p Microsoft-Windows-USB-USBPORT -o usbtrace.etl -ets -nb 128 640 -bs 128

Logman update Usbtrace -p Microsoft-Windows-USB-USBHUB –ets

Effectuez les actions pour le scénario de problème, puis arrêtez les traces en émettant les commandes suivantes à partir d’une invite de commandes avec élévation de privilèges :

Logman stop Usbtrace -ets

Xperf –stop

Fusionnez le fichier journal des deux traces dans un seul fichier à l’aide de la commande suivante (les privilèges ne sont pas requis) :

Xperf –merge usbtrace.etl C:\kernel.etl merged.etl

Cet exemple crée un fichier fusionné nommé merged.etl. Vous pouvez ouvrir ce fichier avec le Analyseur de performances Xperf ou avec Netmon. Pour ouvrir le fichier dans Xperf, exécutez la commande suivante :

Xperf merged.etl

Xperf affiche des graphiques spécialisés pour un large éventail d’événements de noyau, comme illustré dans cette image. Pour plus d’informations sur les options d’enregistrement Xperf et l’interface graphique graphique utilisateur Xperf, consultez La référence Command-Line Xperf et Windows Analyseur de performances (WPA).

Capture d’écran du Analyseur de performances Windows.

Pour ouvrir le journal de suivi fusionné dans Netmon, exécutez Netmon, cliquez sur Fichier -> Ouvrir -> Capture, puis sélectionnez le fichier. Xperf et Netmon peuvent ouvrir le fichier fusionné en même temps. Vous pouvez basculer entre l’interface utilisateur graphique xperf et Netmon pour analyser ce qui se passait dans le système et dans la pile USB pendant une période donnée. Vous pouvez afficher les événements USB dans Xperf, en plus des événements système, mais les événements USB peuvent être plus faciles à lire dans Netmon.

Par défaut, Netmon affiche tous les événements dans le fichier de trace fusionné. Pour afficher uniquement les événements USB, appliquez un filtre tel que le suivant :

ProtocolName == "USBHub_MicrosoftWindowsUSBUSBHUB" OR ProtocolName == "USBPort_MicrosoftWindowsUSBUSBPORT"

Vous pouvez entrer ce texte de filtre dans le volet Affichage du filtre Netmon. Pour plus d’informations sur l’utilisation de filtres dans Netmon, consultez « Filtres Netmon USB » dans cette étude de cas : Résolution des problèmes d’un périphérique USB inconnu à l’aide d’ETW et Netmon.

Pour analyser le minutage des événements USB, vous pouvez examiner la différence de temps entre les événements affichés dans Netmon.

Pour afficher la différence de temps des événements affichés

  1. Dans le volet Résumé du cadre , cliquez avec le bouton droit sur le titre d’une colonne, puis sélectionnez Choisir des colonnes.

  2. Dans la liste Colonnes désactivées , sélectionnez Delta du temps, cliquez sur Ajouter, puis sur OK.

  3. Écrivez un filtre qui affiche uniquement les événements dont vous souhaitez voir le minutage. Par exemple, pour afficher les délais entre les événements de distribution de transfert en bloc qui ne se chevauchent pas et les événements complets, ajoutez le filtre suivant :

    Description == "USBPort_MicrosoftWindowsUSBUSBPORT:Dispatch URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER"
    OR Description == "USBPort_MicrosoftWindowsUSBUSBPORT:Complete URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER"
    OR Description == "USBPort_MicrosoftWindowsUSBUSBPORT:Complete URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER with Data"
    
    1. Vous pouvez choisir les ID d’événement (descriptions) parmi les événements qui apparaissent dans la trace.
    2. Pour utiliser un ID d’événement dans un filtre, cliquez avec le bouton droit sur la description d’un événement dans le volet Résumé du cadre , puis sélectionnez Ajouter une description pour afficher le filtre.