На моєму комп’ютері дуже багато часу потрібно відключити.
Як я можу визначити винуватця? Я не хочу чекати хвилин, коли комп'ютер вимкнеться ...
Чи є програма, яку я можу використовувати, щоб відстежити, скільки часу потрібно до відключення?
На моєму комп’ютері дуже багато часу потрібно відключити.
Як я можу визначити винуватця? Я не хочу чекати хвилин, коли комп'ютер вимкнеться ...
Чи є програма, яку я можу використовувати, щоб відстежити, скільки часу потрібно до відключення?
Відповіді:
Windows пропонує лічильники продуктивності , а також відстеження подій, що дозволяє програмам робити аналіз продуктивності, щоб можна було точно визначити причину проблем із продуктивністю, серед тих, що існують, є один видатний набір інструментів: Інструментарій Windows Performance Toolkit, доступний у Windows SDK .
У цьому наборі інструментів ви знайдете xbootmgr.exe
, призначений для аналізу продуктивності переходу в систему Windows .
Хоча вищезазначений пов'язаний документ містить усі деталі для кожного переходу включення / вимкнення, ось загальна ідея про відстеження та аналіз переходу відключення за допомогою xbootmgr
та інтерфейсу xperf:
Завантажте пакет SDK для Windows, а потім встановіть інструментарій Windows Performance Toolkit.
Відкрийте командний рядок як адміністратор, а потім запустіть:
cd %ProgramFiles%\Microsoft Windows Performance Toolkit
Якщо ви хочете допомогти в майбутньому, ви можете ввести xbootmgr -help
, а також xperf /?
.
Зробіть слід перезавантаження таким чином:
xbootmgr -trace shutdown -traceFlags BASE+DIAG+LATENCY -noPrepReboot
Після завантаження він сформує слід протягом двох хвилин.
Слід збережено в ньому %ProgramFiles%\Microsoft Windows Performance Toolkit
, ви можете перетягнути його на xperf.exe
нього і буде відкрито в графічному інтерфейсі.
Ви побачите графічний інтерфейс із різними графіками, стрілка в лівій частині дозволяє додавати / видаляти графіки.
Подивіться на графіки і побачите, чи можна ідентифікувати що-небудь незвичне, ви можете вибрати інтервал і збільшити його, якщо хочете. Клацніть правою кнопкою миші та зніміть масштаб, коли ви хочете побачити ціле.
Для кожного графіка можна клацнути правою кнопкою миші, щоб отримати зведені таблиці за поточно обраний інтервал .
У цих таблицях сортуйте за вагою або за часом, щоб визначити, на що витрачається найбільше. Зверніть увагу, що ви можете перетягувати стовпці, так, наприклад, таблиця вводу / виводу дозволяє перевірити як найвищий процес використання, так і найвищий шлях використання.
Дільник (жовтий стовпець заголовка) робить його таким чином, що стовпці праворуч від нього показують загальну кількість стовпців, що знаходяться ліворуч від нього. Отже, якщо у вас спочатку Path, а потім Process, ви можете відкрити дерево для файлу, щоб побачити, які процеси отримали доступ до нього, і тоді ви отримаєте підсумки для цього комбінації процес / файл.
Ви можете знайти більше інформації про те, як функціонують графіки та таблиці тут .
Якщо вам якось потрібно спуститися, щоб подивитися на стеки стека; зробіть ще один завантажувальний слід і додайте -stackWalk profile
параметр, встановіть _NT_SYMBOL_PATH і клацніть правою кнопкою миші на будь-якому графіку та увімкніть «Завантажити символи». Це дозволить вам перевірити, які функції насправді викликає, загалом вам це не знадобиться для відключення; але це може дозволити такі речі, як виявлення, що ваш брандмауер перешкоджає вашій налагоджувальній системі як програміст. Досить вишуканий ...
Удачі, сподіваюся, ви зможете знайти винуватця. Якщо ні, то киньте слід, і ми подивимось на вас ...
Зауважте, що DPC - це відкладені виклики процедури, а переривання - програмні переривання , обидва пов'язані з драйверами / апаратними засобами.
Мої відключення, де потрібно довго бігати. Далі йде мій приклад з відповіддю Тома .
Перший графік показує проблему, введення / виведення диска :
Моє відключення займає більше хвилини, і все це жорсткий диск вводу / виводу.
На наступному графіку " Використання диска" показано, що накопичувач майже максується при 100% використанні:
Підсумковий графік показує використання диска за процесом :
Відфільтрувавшись, я розумію, що все це викликано WinInit.exe
:
Клацнувши правою кнопкою миші будь-який із графіків жорсткого диска та вибравши Підсумкову таблицю , я можу отримати детальну інформацію про те, до яких файлів було здійснено доступ через який процес:
56,4 секунди мого відключення було витрачено, WinInit
записавши 6,7 Гб на C:\hiberfil.sys
.
Але питання полягає в тому, чому Windows після закриття записує у мій файл сплячки ?
Тоді я згадав варіант, який увімкнув, щоб стерти цей файл підключення під час вимкнення:
Тож я відключив цю опцію та запустити xbootmgr
знову. Тепер моє відключення становить 22 секунди:
Тепер 9s
про 22s
завершення роботи проводиться System
запис в який - то unknown
файл. Це може бути варте більшого розслідування.
Але поки що я вирішив моє півтора хвилини відключення.
Я пішов далі і вирішив моє 22-річне повільне відключення. Від t = 12s
до t = 21s
показано 100% використання диска , але нульове введення / виведення диска . Це було приголомшливо.
Поки під час одного відключення я почув знайомий звук одного з моїх приводів, що крутився. Відключення зупинилося на 9 секунд, оскільки Windows намагалася отримати доступ до диска, який перейшов у режим сну. Через дев'ять секунд накопичувач відгукується, а через мить машина вимкнулася.
Іронічно, що Windows прокидається диск, щоб сказати, що саме час спати.
Це призвело б до мого фактичного відключення 13,5 секунд. Це, можливо, варто більше розслідувати. Але поки що я вирішив своє 22 секундне відключення.