Как я могу определить виновника моего медленного закрытия Windows?

Мой компьютер очень долго останавливается.

Как я могу определить виновника? Я не хочу ждать минут, когда мой компьютер выключится …

Есть ли программа, которую я могу использовать, чтобы отслеживать, сколько времени требуется для выключения?

Windows предоставляет счетчики производительности, а также трассировку событий, которая позволяет приложениям выполнять анализ производительности, чтобы можно было указать причину проблем с производительностью, среди тех, которые существуют, есть один выдающийся инструментарий: набор инструментов Windows Performance Toolkit, доступный в Windows SDK .

В этом наборе инструментов вы найдете xbootmgr.exe , предназначенный для анализа производительности перехода на Вкл. / Выкл. Windows .

Хотя приведенный выше связанный документ содержит все детали для каждого перехода xbootmgr / выкл, вот общая идея о трассировке и анализе перехода на останов с помощью xbootmgr и графического интерфейса xperf:

  1. Загрузите Windows SDK, а затем установите Performance Performance Toolkit Windows, используя его.

  2. Откройте командную строку в качестве администратора, затем запустите:

    cd %ProgramFiles%\Microsoft Windows Performance Toolkit

  3. Если вам нужна помощь в будущем, вы можете ввести xbootmgr -help а также xperf /? ,

  4. Сделайте так:

    xbootmgr -trace shutdown -traceFlags BASE+DIAG+LATENCY -noPrepReboot

  5. После загрузки он будет генерировать трассировку в течение двух минут.

  6. Трассировка была сохранена в %ProgramFiles%\Microsoft Windows Performance Toolkit , вы можете перетащить ее на xperf.exe и она будет открыта в графическом интерфейсе.

  7. Вы увидите графический интерфейс с разными графиками, стрелка в левой части позволяет добавлять / удалять графики.

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

  9. Для каждого графика вы можете щелкнуть правой кнопкой мыши, чтобы получить сводные таблицы для текущего выбранного интервала .

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

    Разделитель (желтый столбец заголовка) делает это так, чтобы столбцы справа от него отображали общее количество для оставшихся столбцов. Итак, если у вас есть Path сначала, а затем Process, вы можете открыть дерево для файла, чтобы узнать, к каким процессам обратились к нему, и затем вы получите итоговые данные для этой комбинации процессов / файлов.

  11. Вы можете найти дополнительную информацию о том, как здесь работают графики и таблицы.

  12. Если вам почему-то нужно спуститься, чтобы просмотреть трассировки стека; -stackWalk profile еще одну загрузочную трассировку и добавьте параметр -stackWalk profile , установите _NT_SYMBOL_PATH и щелкните правой кнопкой мыши на любом графике и включите «Load Symbols». Это позволит вам проверить, какие функции он на самом деле вызывает, в общем случае вам это не понадобится для выключения; Но это может позволить такие вещи, как обнаружение того, что ваш брандмауэр мешает вашему отладчику в качестве программиста. Довольно изящный …

Удачи, надеюсь, вы сможете найти преступника. Если нет, то отбросьте след, и мы будем искать вас …

Обратите внимание, что DPC являются отложенными процедурами. Вызовы и прерывания являются программными прерываниями , оба относятся к драйверам / аппаратным средствам.

Мое завершение работы, где требуется много времени для запуска. Ниже следует мой пример с ответом Тома .

Первый график показывает проблему, Disk I / O :

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

Мое выключение занимает более минуты, и это все жесткие диски ввода-вывода.

Следующий график, « Использование диска» показывает, что диск почти максимизирован при 100% использовании:

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

На последнем графике показано использование диска по процессу :

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

Фильтрация вниз я понимаю, что все это вызвано WinInit.exe :

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

Щелкнув правой кнопкой мыши на любой из графиков жесткого диска и выбрав « Сводная таблица» , я могу получить информацию о том, какие файлы были доступны для какого процесса:

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

56,4 секунды моего отключения было потрачено WinInit пишущим 6,7 ГБ на C:\hiberfil.sys .


Но вопрос в том, почему Windows записывает мой спящий файл при завершении работы ?

Затем я вспомнил вариант, который я включил, чтобы стереть этот файл подкачки при завершении работы:

  • Пуск -> Выполнить -> SecPol.msc
    • Параметры безопасности, Локальные политики, Параметры безопасности
    • Выключение: очистить файл подкачки виртуальной памяти

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

Поэтому я отключил эту опцию и снова запустил xbootmgr . Теперь мое завершение составляет 22 секунды:

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

Теперь 9s из 22s shutdown тратится на запись System в unknown файл. Это может быть заслуживающим большего внимания.

Но пока я решил свою половину минуты выключения.


Я пошел дальше и решил медленное выключение 22-го. От t = 12s до t = 21s показано 100% использование диска , но ноль диск ввода-вывода . Это было непонятно.

Пока во время одного выключения я не услышал знакомый звук одного из моих дисков. Завершение работы было остановлено на 9 секунд, потому что Windows пыталась получить доступ к диску, который спал. Через девять секунд привод реагирует, и через минуту машина выключится.

Иронично, что Windows пробуждает диск, чтобы сказать, что пришло время заснуть.

Это приведет к фактическому отключению 13,5 секунд. Это может стоить большего внимания. Но на данный момент я решил завершить свое 22-секундное закрытие.

  • Как я могу узнать, что является узким местом, замедляющим определенный процесс / всю систему?
  • Инструменты для поиска узких мест в конфигурации оборудования
  • RamMap «Пустой резервный список» резко ускоряет работу ПК. Есть лучший способ сделать это?
  • Почему для 64-разрядной версии Windows 7 требуется больше памяти, чем 32-разрядная?
  • Windows XP замедляется, что винить?
  • Как изменить приоритет ввода / вывода процесса или потока в Win7?
  • Улучшена ли дефрагментация, связанная с улучшением производительности диска?
  • Как управлять использованием RAM / swap
  • Почему это иногда занимает много времени для закрытия окон?
  • Двойная виртуализация против двойной загрузки или единой виртуализации
  • Проверка скорости чтения на жестком диске
  • Давайте будем гением компьютера.