Partilhar via


Analisando problemas de desempenho USB usando Xperf e Netmon

Este tópico fornece informações sobre como exibir a linha do tempo de eventos capturados em um log DE ETW USB.

O Xperf fornece um conjunto de eventos de kernel para analisar problemas de desempenho. Ele registra esses eventos e os apresenta em grafos.

Se você estiver familiarizado com os eventos Xperf e USB ETW, poderá criar um log ETW USB e um log Xperf de um cenário de problema, mesclar os dois arquivos de log e analisá-los juntos. O uso de Xperf e Netmon juntos permite exibir os eventos do sistema (Xperf) e os eventos USB (Netmon) para um determinado cenário.

Inicie os dois rastreamentos em paralelo emitindo os seguintes comandos de um prompt de comando com privilégios elevados:

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

Execute as ações para o cenário de problema e interrompa os rastreamentos emitindo os seguintes comandos de um prompt de comando com privilégios elevados:

Logman stop Usbtrace -ets

Xperf –stop

Mescle os dois arquivos de log de rastreamento em um único arquivo usando o seguinte comando (privilégios não são necessários):

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

Este exemplo cria um arquivo mesclado chamado merged.etl. Você pode abrir esse arquivo com o Performance Analyzer Xperf ou com o Netmon. Para abrir o arquivo no Xperf, execute o seguinte comando:

Xperf merged.etl

O Xperf mostra grafos especializados para uma ampla variedade de eventos de kernel, conforme mostrado nesta imagem. Para obter mais informações sobre as opções de gravação Xperf e a GUI do Xperf, consulte a Referência de Command-Line Xperf e o WPA (Windows Performance Analyzer).

Captura de tela da Performance Analyzer do Windows.

Para abrir o log de rastreamento mesclado no Netmon, execute Netmon, clique em Arquivo –> Abrir –> Capturar e selecione o arquivo. Xperf e Netmon podem ter o arquivo mesclado aberto ao mesmo tempo. Você pode alternar entre a GUI Xperf e o Netmon para analisar o que estava acontecendo no sistema e na pilha USB durante um determinado período de tempo. Você pode exibir os eventos USB no Xperf, além dos eventos do sistema, mas os eventos USB podem ser mais fáceis de ler no Netmon.

Por padrão, o Netmon exibe todos os eventos no arquivo de rastreamento mesclado. Para mostrar apenas os eventos USB, aplique um filtro como o seguinte:

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

Você pode inserir esse texto de filtro no painel Exibição de Filtro do Netmon. Para obter mais informações sobre como usar filtros no Netmon, consulte "Filtros USB Netmon" neste estudo de caso: solução de problemas de um dispositivo USB desconhecido usando ETW e Netmon.

Para analisar o tempo dos eventos USB, você pode examinar a diferença de tempo entre os eventos exibidos no Netmon.

Para exibir a diferença de tempo dos eventos exibidos

  1. No painel Resumo do Quadro , clique com o botão direito do mouse em um título de coluna e selecione Escolher Colunas.

  2. Na lista Colunas Desabilitadas , selecione Delta do Tempo, clique em Adicionar e clique em OK.

  3. Escreva um filtro que exibe apenas os eventos cujo tempo você gostaria de ver. Por exemplo, para exibir os atrasos entre a expedição de transferência em massa não sobreposta e os eventos completos, adicione o seguinte filtro:

    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. Você pode escolher as IDs de evento (descrições) dos eventos que aparecem no rastreamento.
    2. Para usar uma ID de evento em um filtro, clique com o botão direito do mouse na descrição de um evento no painel Resumo do Quadro e selecione Adicionar Descrição ao Filtro de Exibição.