Ищем причину медленной загрузки Windows с помощью Process Monitor

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

Системная утилита Process Monitor обычно используется для отслеживания в реальном времени активности запущенных процессов, обращений к файлам и реестру. Также ProcMon позволяет включить логирование всех процессов, которые выполняются при загрузке Windows, получить время выполнения каждого процесса и сохранить лог в файл для дальнейшего анализа.

  1. Скачайте и распакуйте архив с Process Monitor ( http://download.sysinternals.com/files/ProcessMonitor.zip );
  2. Запустите procmon.exe с правами администратора;
  3. В меню Options выберите пункт Enable Boot Logging; Enable Boot Logging журналирование загрузки в Process Monitor
  4. Выберите опцию Generate thread profiling events -> Every second . В этом режиме драйвер procmon будет записывать состояние всех процессов каждую секунду. enerate thread profiling events -> Every second
  5. Сохраните изменения. ProcMon скопирует драйвер procmon23.sys в каталог %SystemRoot%System32Drivers и создаст отдельную службу (в ветке HKLMSYSTEMCurrentControlSetServices). Эта служба будет запускаться после запуска Winload.exe и будет записывать в лог активность всех процесс, которые выполняются при загрузке Windows и входе пользователя;
    Чтобы отключить режим протоколирования загрузки, выполните команду: procmon.exe /noconnect

    служба procmon23.sys

  6. Перезагрузите компьютер и дождитесь появления рабочего стола;
  7. Драйвер procmon23.sys будет писать лог событий до тех пор, пока пользователь вручную не запустит утилиту Process Monitor. После этого режим протоколирования загрузки отключается;
  8. В окне Process Monitor соглашаемся с предложение сохранить собранные данные в файл bootlog.pml. Сохранить журнал с акивностью при загрузки в файл
    Примечание . Если не остановить работу Process Monitor, то временный файл журнала %windir%procmon.pmb со временем может занять все свободное место на системном диске.
  9. В моем случае размер файла bootlog.pml около 500 Мб. Откройте этот файл в ProcMon;
  10. Щелкните по заголовку таблицы в окне ProcMon, выберите Select Columns и включите отображение столбца Duration ; Добавить столбец (Duration ) длительность в ProcMon
  11. Теперь нужно изменить параметры фильтрации процессов в меню Filter; Фильтр событий в Process Monitor
  12. В качестве параметра фильтрации выберите Duration , условие more than и значение 5. Нажмите Add и ОК. Найти все события, которые длились более 10 секунд
  13. В списке процессов останутся только те действия, на которых ушло больше 5секунд (5 секунд я выбрал для наглядности); procmon bootlog
  14. Также для анализа процесса загрузки можно воспользоваться функцией в меню Tools -> Process Tree , позволяющей отобразить все процессы в виде графического дерева с информацией о начале, завершении и длительности процесса; Дерево процессов Process Monitor

Проанализируйте список процессов при загрузке, соотнесите процессы со службами, программами и драйверами. Чаще всего в этом списке оказываются антивирусы и другое «тяжелое» ПО.

Например, в этом примере при загрузке компьютер был запущен процесс обновления браузера Edge, который занял почти 4 минуты.

Дерево процессов в procmon - долгий процесс обновления браузера при загрузке

Обновление Edge выполняется отдельным заданием планировщика MicrosoftEdgeUpdateTaskMachineCore , которое выполняется при входе каждого пользователя. Если эта проблема возникает часто, можно отложить выполнение задания, добавив задержку в его расписание.

Сделать отложенный запуск задания планировщик для ускорения загрузки Windows

Также вы можете получить информацию об использовании CPU, RAM и дисков процессами при загрузке. Для этого выберите в меню ProcMon опцию Process Activity Summary .

Process Activity Summary в procmon

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

Просмотри использования памяти и CPU процессами при загрузке

С помощью Network Summary можно отследить медленные сетевые обращения и процессы, которые загружают/отправляют по сети большие порции данных при загрузке Windows. Например, на скриншоте видно, что при запуске компьютеру пришлось получить около 0.5 Мб данных с контроллера домена.

Сетевой трафик процессов при загрузки Windows

Анализ сетевого трафика позволит в том числе понять, почему настройки GPO применяются очень долго .

Выполните анализ всех процессов, которые тормозят загрузку Windows (в первую очередь нужно анализировать дочерние процессы Winlogon.exe). На основании полученной информации нужно выполните оптимизацию системы: удалить/обновить проблемные программы или драйвера, отключить некоторые службы или изменить тип их запуска (отложенный запуск или ручной по запросу), убрать программы из автозагрузки и т.д.

EnglishRussianUkrainian