Как я могу проанализировать проблемы с производительностью до / во время входа в систему?


17

Как я могу проанализировать проблему с производительностью, которая возникает до или во время входа в систему?


@JanDoggen: Это общий вопрос, на который я могу указать людям, если у них есть похожая проблема. blog.stackoverflow.com/2012/05/encyclopedia-stack-exchange
Der Hochstapler

Ответы:


35

Использование Process Monitor

Process Monitor - это инструмент, который будет собирать события файловой системы, реестра и сети для всех запущенных процессов. Затем собранные события можно проанализировать, чтобы определить, как система (или приложение) ведет себя внутренне в определенных ситуациях.

В этом случае мы хотим использовать инструмент, чтобы определить, какие события во время процесса загрузки заняли много времени.

  1. Загрузите Process Monitor и запустите его.

  2. В меню « Параметры» установите флажок « Включить ведение журнала загрузки» .

    Включить протоколирование загрузки

  3. В появившемся диалоговом окне выберите « Создать события профилирования» и нажмите « ОК» .

    Генерация событий профилирования

  4. Перезагрузите систему и скопируйте вашу проблему. После завершения процесса входа в систему запустите Process Monitor.

  5. Process Monitor сообщит вам, что он собрал активность при загрузке, и спросит вас, хотите ли вы сохранить эти данные сейчас. Подтвердите процесс, нажав Да .

    Сохранить активность при загрузке

  6. Выберите подходящее место для хранения .pmlфайла и дождитесь преобразования данных. Как только данные загружены, отобразите столбец Длительность , открыв контекстное меню в одном из заголовков столбцов и нажав Выбрать столбцы ...

    Выберите столбцы ...

    ... и установив соответствующий флажок в появившемся диалоговом окне.

    Длительность чекбокс

  7. Создайте новый фильтр, выбрав Filter ... * в меню ** Filter .

    Меню фильтра

  8. Создание фильтра для Продолжительности колонки , где она больше , чем значение 1 , в этом случае запись должна быть включена . Нажмите « Добавить», чтобы добавить фильтр в список и подтвердить выбор нажатием кнопки « ОК» .

    введите описание изображения здесь

  9. На этом этапе в списке событий в Process Monitor будут отображаться только события, выполнение которых заняло более 1 секунды. Вы захотите проверить столбец Длительность на наличие событий, для завершения которых потребовалось много времени.

    В демонстрационных целях здесь представлен список событий, выполнение которых заняло более 10 секунд. Это было записано на виртуальной машине для демонстрационных целей.

    Примеры событий
    нажмите, чтобы увеличить

    Хотя эти события не обязательно должны быть виновниками блокирования процесса входа в систему, отключение службы индексирования Windows и Avast Anti-Virus может стоить попробовать в этой установке.

Использование xperf

xperf - это инструмент для анализа производительности из Windows Performance Toolkit. Использование этого и возможность анализа собранных данных может быть проблемой. Тем не менее, мы увидим, как собрать необходимые данные и как просмотреть соответствующие разделы.

Обращаем ваше внимание на то, что для этого необходим комплект для оценки и развертывания Windows (ADK), который работает только в Windows 7 и более поздних версиях.

  1. Загрузите Windows ADK и установите хотя бы компонент Windows Performance Toolkit .

  2. После завершения установки откройте командную строку с повышенными правами.

    Повышенная командная строка

  3. Перейдите в каталог, где вы хотите, чтобы ваш след находился. Понравился рабочий стол.

  4. Рекомендованный способ (в соответствии с использованием XBOOTMGR для захвата медленных загрузок или медленных входов в систему, вызванных медленными загрузками ) для захвата трассировки во время загрузки:

    xbootmgr -trace boot -traceflags base+latency+dispatcher -stackwalk profile+cswitch+readythread -notraceflagsinfilename -postbootdelay 10

    Система теперь запустит трассировку и перезагрузится.

  5. После перезагрузки следуйте инструкциям на экране. Вам будет предложено разрешить процесс сбора для повышения. После завершения процесса вы найдете полученную трассировку в папке, из которой вы инициировали трассировку.

    В моем случае он создал boot_1.etl(и соответствующий boot_1.cab) на рабочем столе.

    Откройте .etlфайл в анализаторе производительности Windows .

Анализ

После того, как вы открыли трассировку, вы уже можете видеть возможные признаки того, что ваша проблема связана с оборудованием. Быстрый просмотр обзоров вычислений , хранения и памяти в графическом обозревателе покажет пики, которые следует дополнительно проанализировать.

Для демонстрации рассмотрим график использования по процессам . Чтобы отобразить содержимое, просто дважды щелкните график, чтобы добавить его в представление « Анализ» .

Обзор анализатора производительности Windows
нажмите, чтобы увеличить

Обратите внимание, что ни один из графиков не показывает никаких пиков. Синие пики в начале относятся к системному процессу и ожидаются в это время.

Другие пики на графике использования ЦП лучше рассмотреть в контексте. Итак, давайте добавим еще один график в представление анализа. График, который мы ищем - это график фаз загрузки , который находится в разделе « Системная активность ».

Фазы загрузки
нажмите, чтобы увеличить

На скриншоте выше я также добавил график общих событий внизу, чтобы обеспечить дополнительный контекст. Однако здесь следует отметить тот факт, что первый видимый пик использования ЦП был вызван службой Avast. Мы уже заметили в анализе Process Monitor, что этот процесс был одним из процессов, которые занимали большую часть времени в процессе загрузки.

Что мы видим здесь, сейчас мы можем увидеть его в контексте загрузки фаз, является то , что пик произошел после того, как в Winlogon Init фазы (и даже в Post загрузки фазы , которая происходит , когда вы уже можете видеть на рабочем столе). Таким образом, маловероятно, что этот процесс на самом деле вызывает у нас проблему на этапе до того, как мы увидим рабочий стол.

То, что мы будем искать, это события, которые происходят на этапе инициализации Winlogon или вокруг него . Чтобы сделать это проще, вы можете выбрать фазу на графике Boot Phases. Это выделит все записи на всех графиках, которые произошли на этом этапе.

График, на который следует взглянуть лучше, - это, безусловно, граф Services , так как большинство из них запускаются на этапе инициализации Winlogon.

Как я уже говорил во введении, анализ этих данных может быть сложным, если только проблема не возникнет сразу после того, как вы откроете трассировку. Тем не менее, это определенно правильный инструмент для анализа проблемы. В зависимости от ситуации, вы можете даже собирать следы стека, чтобы углубить детали. Этот процесс далеко выходит за рамки этого поста, хотя.

дальнейшее чтение


xbootmgr из WPT ( msfn.org/board/index.php?showtopic=158252 ) - лучший инструмент для начала работы. Я использую логи ProcMon только для более глубокого изучения специальной фазы загрузки.
magicandre1981

@ magicandre1981: пост еще не закончен;) Если вы хотите добавить к нему более подробную информацию о xperf, не стесняйтесь редактировать.
Der Hochstapler
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.