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

Ищем причину медленной загрузки 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 будет записывать состояние всех процессов каждую секунду.d0b8d189d0b5d0bc d0bfd180d0b8d187d0b8d0bdd183 d0bcd0b5d0b4d0bbd0b5d0bdd0bdd0bed0b9 d0b7d0b0d0b3d180d183d0b7d0bad0b8 windows d181 d0bfd0be 65d2362de3b13 Every second» width=»361″ height=»178″>
  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

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

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