Як я можу проаналізувати проблеми продуктивності до / під час входу?


17

Як я можу проаналізувати проблему продуктивності, яка виникає до або під час входу в систему?


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

Відповіді:


35

Використання монітора процесів

Монітор процесів - це інструмент, який збиратиме файлову систему, реєстр та мережеві події для всіх запущених процесів. Потім зібрані події можна проаналізувати, щоб визначити, як система (або додаток) поводиться внутрішньо в певних ситуаціях.

У цьому випадку ми хочемо за допомогою інструменту визначити, які події під час завантаження потребували тривалого часу.

  1. Завантажте Монітор процесів і запустіть його.

  2. У меню Параметри встановіть прапорець Увімкнути журнал завантаження .

    Увімкнути журнал завантаження

  3. У діалоговому вікні, що з'явився, поставте прапорець Створити події профілювання та натисніть кнопку ОК .

    Створення подій з профілювання

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

  5. Монітор процесів сповістить вас, що він збирав активність під час завантаження, і запитає, чи бажаєте ви зберегти ці дані зараз. Підтвердьте процес, натиснувши Так .

    Збережіть активність під час завантаження

  6. Виберіть для .pmlфайлу відповідне місце зберігання та дочекайтеся конвертації даних. Після завантаження даних виведіть стовпчик " Тривалість ", відкривши контекстне меню на одній із заголовків стовпців та натиснувши Вибрати стовпці ...

    Виберіть стовпці ...

    ... і встановити відповідний прапорець у діалоговому вікні, що виходить.

    Постійний прапорець

  7. Створіть новий фільтр, вибравши Фільтр ... * у меню ** Фільтр .

    Меню фільтра

  8. Створіть фільтр для стовпця « Тривалість», де він перевищує значення 1 , і в цьому випадку запис повинен бути включений . Клацніть Додати, щоб додати фільтр до списку та підтвердити вибір за допомогою OK .

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

  9. На даний момент у списку подій у "Моніторі процесів" відображатимуться лише події, на виконання яких пішло більше 1 секунди. Ви хочете перевірити стовпець " Тривалість " на наявність подій, які тривали тривалий час.

    Для демонстраційних цілей наведено підбірку подій, на завершення яких пішло більше 10 секунд. Це було зафіксовано у віртуальній машині для демонстраційних цілей.

    Приклад подій
    натисніть для збільшення

    Хоча ці події не обов'язково повинні бути винуватцями блокування завершення процесу входу, відключення служби індексації Windows та антивіруса Avast може бути вагомим для цього встановлення.

Використання xperf

xperf - це інструмент аналізу продуктивності з інструментарію Windows Performance Toolkit. Використання його та можливість аналізу зібраних даних може бути проблемою. Тим не менш, ми побачимо, як зібрати необхідні дані та як переглянути відповідні розділи.

Зауважте, що комплект для оцінювання та розгортання Windows (ADK), необхідний для цього, працює лише в Windows 7 і вище.

  1. Завантажте Windows ADK та встановіть принаймні компонент Windows Toolkit 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 .

Аналіз

Після відкриття сліду ви вже можете бачити можливі вказівки на те, що ваша проблема пов'язана з обладнанням. Швидкий погляд на огляди обчислень , зберігання та пам’яті у програмі Graph Explorer показав би піки, які слід додатково проаналізувати.

Для демонстраційних цілей, давайте подивимося на її використання Process графіка. Щоб відобразити вміст, просто двічі клацніть графік, щоб додати його до подання Аналіз .

Огляд продуктивності аналізатора Windows
натисніть для збільшення

Зауважте, що жоден із графіків не відображає жодних піків. Сині вершини на початку належать до системного процесу і, як очікується, відбудуться в цей час.

Інші піки в графіку використання CPU можуть бути краще розглянуті в контексті. Отже, додамо ще один графік до подання Аналіз. Графік, який ми шукаємо, - це графік Фази завантаження , який розташований у розділі " Системна активність ".

Фази завантаження
натисніть для збільшення

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

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

Що ми б шукали - це події, які відбуваються у фазі Вінлогона Ініта або навколо неї . Щоб зробити це простіше, ви можете вибрати фазу на графіку Фази завантаження. Це дозволить виділити всі записи у всіх графіках, що відбулися на цій фазі.

Графік для кращого розгляду - це, безумовно, графік Служб , оскільки більшість із них запускаються під час фази Winlogon Init.

Як я вже говорив у вступі, аналіз цих даних може бути складним, якщо тільки проблема не вискочить у вас відразу після того, як ви відкриєте слід. Однак це, безумовно, правильний інструмент для аналізу проблеми. Залежно від ситуації, ви можете навіть захотіти зібрати сліди стека, щоб просвердлити ще глибше. Цей процес далеко не виходить за межі цієї посади.

Подальше читання


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.