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

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

🎓 Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и "под микроскопом" изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Системная утилита 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%\System32\Drivers и создаст отдельную службу (в ветке HKLM\SYSTEM\CurrentControlSet\Services). Эта служба будет запускаться после запуска 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). На основании полученной информации нужно выполните оптимизацию системы: удалить/обновить проблемные программы или драйвера, отключить некоторые службы или изменить тип их запуска (отложенный запуск или ручной по запросу), убрать программы из автозагрузки и т.д.

🎓 Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и "под микроскопом" изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Предыдущая статья Следующая статья


Комментариев: 1 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)