Поделиться через


Анализ проблем с производительностью USB с помощью Xperf и Netmon

В этом разделе содержатся сведения о том, как просмотреть временная шкала событий, собранных в журнале ТРАССИРОВКИ USB.

Xperf предоставляет набор событий ядра для анализа проблем с производительностью. Он записывает эти события и представляет их в графах.

Если вы знакомы с событиями Xperf и USB ETW, вы можете создать журнал ТРАССИРОВКИ USB и журнал Xperf для сценария проблемы, объединить два файла журнала и проанализировать их вместе. Совместное использование Xperf и Netmon позволяет просматривать системные события (Xperf) и события USB (Netmon) для заданного сценария.

Запустите две трассировки параллельно, выполнив следующие команды из командной строки с повышенными привилегиями:

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

Выполните действия для сценария проблемы, а затем остановите трассировки, выполнив следующие команды из командной строки с повышенными привилегиями:

Logman stop Usbtrace -ets

Xperf –stop

Объедините два файла журнала трассировки в один файл с помощью следующей команды (привилегии не требуются):

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

В этом примере создается объединенный файл с именем merged.etl. Этот файл можно открыть с помощью Анализатор производительности Xperf или Netmon. Чтобы открыть файл в Xperf, выполните следующую команду:

Xperf merged.etl

Xperf показывает специализированные графики для широкого спектра событий ядра, как показано на этом изображении. Дополнительные сведения о параметрах записи Xperf и графическом интерфейсе Xperf см. в справочнике по Command-Line Xperf и Windows Анализатор производительности (WPA).

Снимок экрана: Анализатор производительности Windows.

Чтобы открыть объединенный журнал трассировки в Netmon, запустите Netmon, щелкните Файл —> Открыть —> Запись, а затем выберите файл. Объединенный файл можно открыть одновременно в Xperf и Netmon. Вы можете переключаться между графическим интерфейсом Xperf и Netmon, чтобы проанализировать, что происходило в системе и в стеке USB в течение определенного периода времени. Вы можете просматривать события USB в Xperf в дополнение к системным событиям, но события USB могут быть проще читать в Netmon.

По умолчанию Netmon отображает все события в объединенном файле трассировки. Чтобы отобразить только события USB, примените фильтр следующего вида:

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

Этот текст фильтра можно ввести на панели Отображения фильтра Netmon. Дополнительные сведения об использовании фильтров в Netmon см. в разделе "Фильтры USB Netmon" в этом примере: устранение неполадок с неизвестным USB-устройством с помощью ETW и Netmon.

Чтобы проанализировать время событий USB, можно просмотреть разницу во времени между отображаемыми событиями в Netmon.

Просмотр разницы во времени отображаемых событий

  1. В области Сводка по кадрам щелкните правой кнопкой мыши заголовок столбца и выберите Выбрать столбцы.

  2. В списке Отключенные столбцы выберите Разностное время, нажмите кнопку Добавить, а затем нажмите кнопку ОК.

  3. Напишите фильтр, отображающий только те события, время которых вы хотите просмотреть. Например, чтобы просмотреть задержки между неперекрывающимися событиями массовой передачи и событиями завершения, добавьте следующий фильтр:

    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. Вы можете выбрать идентификаторы событий (описания) из событий, которые отображаются в трассировке.
    2. Чтобы использовать идентификатор события в фильтре, щелкните правой кнопкой мыши описание события в области Сводка по кадру и выберите Добавить описание в фильтр отображения.