Найти тему
А чё так можно?

Наблюдаем за загрузкой Windows. Отслеживаем процессы. Умная Большая Оптимизация #4

Оглавление

Вместо вступления

Сегодня рассмотрим:

  1. Какие приложения, драйвера и службы загружаются вместе с ОС. Какое процессорное время, дисковые ресурсы и ресурсы памяти они потребляют.
  2. Разберемся, как можно «прицепиться» к процессу и узнать что оно делает.

Из рубрики «Умной большой оптимизации»:

  1. Режим одобрения администратором. Как запускать всё приложения в режиме «от имени Администратора».
  2. Запуск приложений от имени Системы.
  3. Виртуальная память Windows. Простыми словами.

Во избежания недоразумений лучше прочитать все предшествующие статьи, дабы избежать вопросов:

  • Почему у меня не запускается приложение?
  • Почему у меня нет этого приложения?
  • Где, то место, про которое идет речь?
  • Что такое «…» (что бы то ни было, освещенное ранее)?
  • И подобные…

Отвечать на подобные вопросы не буду

Ставь лайки и комментируй, если статья оказалась полезной. Для меня и тебя это важно.

Дополняющее видео: Как узнать что грузит Windows | Ускорить загрузку Windows

В видео могут быть фрагменты, отсутствующие в статье из-за большого набора действий, которые мне лень переносить в формат статьи.

Захват событий Windows

Потребуется приложение ProcMon.

Win+R → procmon64 → Enter
Главное окно ProcMon
Главное окно ProcMon

При запуске «Захват» событий будет включён. А также появиться окно фильтров, с фильтрами по умолчанию. В Диалоговом окне нажми «Ок».

Разбираемся с главным окном
Разбираемся с главным окном

Перечисление будет слева направо, сверху вниз.

Главная кнопка — Захват событий, она же — остановить Захват событий.

Фильтры классов событий: Работа с реестром, Работа с файловой системой, Работа с сетью, Работа процессов и потоков, Профильные классы ProcMon. При включённом состоянии будет вестись отображение операций данного класса. Т.е. если оставить только класс событий «Работа с реестром», будут отображаться только события связанные с реестром. Однако, это не значит, что остальные классы событий «выпиливаются» из памяти, — нет они всё также собираются и хранятся в памяти, лишь не отображаются!

Столбцы:

  • Time of Day — время регистрации события.
  • Process Name — имя процесса.
  • PID — Идентификатор Процесса.
  • Operation — операция характерная для класса события.
  • Path — Путь.
  • Result — Результат операции.
  • Detail — Детали результата.

Настроить отображение столбцов ты можешь следующим образом:

Настройка отображения столбцов
Настройка отображения столбцов

Важным столбцами являются «Результат операции» и «Детали операций». Значение столбца «Результат операции» — ничто иное как константа из Списка ошибок Windows. «Детали результата» — дополнительные данные, придающие целостность значению «Результата операций».

Самое нижнее — количество «Захваченных» событий. Чем больше программа Захватит событий, тем больше потребуется памяти. Будь внимателен, при 1 000 000 событий, будет использовано 40 Мб памяти при 64х битной архитектуре ОС.

«Победить» растрату ресурсов может помочь «Кольцевой буфер».

Настройка кольцевого буфера
Настройка кольцевого буфера

Параметрами буфера выступают заданные критерии памяти и\или времени. Это не даст «сожрать» всю память.

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

Настройка фильтров
Настройка фильтров

Самыми важными и часто используемыми фильтрами являются:

  • Command Line — параметры запуска приложения.
  • Data & Time — дата и время.
  • Detail — детали результат.
  • Duration — продолжительность выполнения операции.
  • Event Class — класс события.
  • Operation — операция характерная для класса события.
  • Path — путь до объекта, над которым выполнялась операция.
  • PID — идентификатор процесса.
  • Process Name — имя процесса.
  • Result — результат.

Далее критерий применения фильтра:

  • is — точное совпадение…
  • is not — отрицая точное совпадение с… Работает «от обратного» для «is».
  • less than — меньше чем…
  • more than — больше чем…
  • begins with — начинается с… Пример «Exp»: отобразит EXPlorer, EXPerience и т.д.
  • end with — заканчивается этим… Работает «от обратного» для «begins with».
  • contains — содержит это… Пример «Exp»: отобразит EXPlorer, flEXPod и т.д.
  • excludes — исключая содержание этого… Работает «от обратного» для «contains».

Ну и параметр отсеивания:

  • include — входящие данные проходящие по критериями фильтра включатся в отображение.
  • exclude — входящие данные проходящие по критериям фильтра исключаются из отображения.

Краткий экскурс закончен. Этих данных тебе хватит для начала работы с программой ProcMon.

Загрузка ОС

Далее следуй картинке:

Запуск отслеживания действий ОС при загрузке
Запуск отслеживания действий ОС при загрузке

В ДО (диалоговое окно), устанавливаем параметр Интервал профилирования потоков «100 миллисекунд», что потребуется для отслеживания нагрузки ЦП процессами.

Теперь разберем, что мы натворили. При следующей загрузке ОС драйвер «ProcMon24.sys» загрузится и начнёт отслеживать действия всех процессов.

Загрузка драйвера ProcMon24.sys
Загрузка драйвера ProcMon24.sys

Теперь нужно перезагрузить компьютер. После перезагрузки, когда по всем признакам ОС начинает адекватно реагировать на твои действия (воспользуйся Диспетчером задач, дождись, когда нагрузка на ЦПУ и Диск упадут) следует запустить ProcMon!

Если этого не сделать, драйвер будет собирать информацию дальше, до тех пор, пока не закончится место на системном разделе. Временный файл базы данных Лога расположен в «%windir%\procmon.pmb».

Последующие ДО
Последующие ДО

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

Захват событий остановиться и откроется лог загрузки ОС.

Лог который ты будешь видеть принадлежит ноутбуку, который выступает TVBox-ом, правда в последнее время он больше — подопытный кролик. На борту: i7 2\4 c\t 3.3 ГГц, 6 Гб DDR3 и HDD. Начало лога 14:50:58, конец лога — 14:53:35. Я ждал до тех пор, пока нагрузка на HDD не уменьшиться до минимума, чтобы захватить эти события и отобразить в логе.

Ну а теперь сводка затраты ресурсов:

Получаем сводку в удобной форме
Получаем сводку в удобной форме

Мы видим кто какие ресурсы тратил:

Отображение активности процессов
Отображение активности процессов

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

Как ты можешь видеть, самым ресурсоемким приложением по затрате процессорного времени является процесс «System». При двойном клике на нём получаю следующую картину:

Сводка по процессу «System»
Сводка по процессу «System»

По файловым операциям чтения\записи, данный процесс также лидирует. Что это значит? А я скажу! Доставай бабушкину бензопилу! Нужно отрезать ему хотя бы одну ногу! Ну или пальчик! 😊

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

Рассмотрим значения процесса MsMpEng
Рассмотрим значения процесса MsMpEng

Что здесь написано, нижний блок:

  • Процесс стартовал (Started) и процесс остановился (Ended).
  • Процесс затратил 2.453 секунды процессорного времени в Пользовательском режиме (Total User CPU) и затратил 1.672 секунды процессорного времени в режиме ядра (Total Kernel CPU). Это время затраченное ЦП для обработки инструкций данного процесса. Не следует сопоставлять это время с реальным. Процесс может жить 10 минут, а потратить всего 2 секунды процессорного времени. Если процесс жил 1 секунду «реального времени», а затраченное процессорное время составило 0,25 секунды, это значит что 25% всей мощи твоего процессора было использовано для обработки инструкций этого процесса в эту 1 секунду «реального времени».

Все столбцы кликабельны и помогают упорядочивать по возрастанию\убыванию:

  • PID — идентификатор процесса.
  • CPU — затраченное процессорное время.
  • File Events — события связанные с файловой системой (открытие файлов, чтение файлов, запись файлов и т.д.).
  • File I/O Bytes — количество прочтённых и записанных байт. Чем более загружен график, тем больше соответственно нагрузка на диски.
  • Registry Events — работ с реестром. Прямо — это работа с реестром (БД), её структурой и извлечением информации из кустов и ключей, косвенно — это затрата процессорного времени, а также нагрузка на файловую систему. В конце концов реестр — это файл. Чем больше проводится таких операций, тем сильнее нагрузка на ЦП и системный диск.
  • Network Events\Bytes — события сети и отправленные\полученные байты.
  • Оставшиеся столбцы Commit Peak, Private Bytes, Working Set — значения затраты памяти.

Можешь проводить анализ процессов, выявлять «паршивцев» и сделать что-нибудь с ними в рамках уголовного кодекса, исходя из своих потребностей и требований к компьютеру.

Для того чтобы посмотреть какие службы прячутся в хосте «svchost.exe», воспользуйся Power Shell'ом:

Clear-Host
Get-WmiObject Win32_Service | Where-Object ProcessId -eq 1020 | ft Name, StartMode, State, Status, DisplayName, Description

, где 1020 — PID интересуемого процесса «svchost.exe».

Давать советы я тебе не буду, отключать ли индексацию или Защитник Windows, просто потому, что не настало ещё время, вот как настанет время, так настанет время и я буду что-то советовать, а что-то советовать соответственно не буду! Решай сам, короче!

Наблюдение за процессом

Давай понаблюдаем за процессом «Explorer.exe»!

Добавление фильтра
Добавление фильтра

Для этого, добавь фильтр, как показано на изображении и включи захват событий.

Наблюдение за процессом «Explorer.exe»
Наблюдение за процессом «Explorer.exe»

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

Информационные окна. Информация по сети взята с приложения «qBitTorrent», т.к. «Explorer.exe» практически не пользуется сетью в моём случае
Информационные окна. Информация по сети взята с приложения «qBitTorrent», т.к. «Explorer.exe» практически не пользуется сетью в моём случае

Эти окна весьма полезны, когда речь идёт о изучении какого-то процесса. Собирают сводную статистику по объектам взаимодействия процесса с этими объектами. Как бы «ужимают» все события из главного окна.

Как последить за конкретной службой? Покажу на примере службы «Сервер».

Служба «Сервер»
Служба «Сервер»

Либо Power Shell:

Clear-Host
Get-WmiObject Win32_Service | ft Name, StartMode, State, Status, DisplayName, Description

Получаем имя службы «LanmanServer» и настраиваем два фильтра:

Фильтры для отслеживания службы «LanmanServer»
Фильтры для отслеживания службы «LanmanServer»

И всё! Можно подслушивать и подглядывать! Заметь без подписки! 😉

Заключение

ProcMon — гибкий инструмент, с широкими возможностями. Он хоть и задумывался как инструмент для отладчиков, но и для обычных пользователей прекрасно подходит — для изучения ОС и устранения проблем. В ситуациях когда ОС ведёт себя не так, как должна на твой взгляд, можно запустить данную программу и понять, кто и что творит с твоей системой.

Почему важно ставить лайки и оставлять комментарии? Так я вижу, что мои труды продуктивны. Так я понимаю, что данная тема тебе нравиться и я буду её развивать. Я приветствую конструктивную критику, приветствую новые идеи, — потому пиши.

Я пишу статьи\снимаю видео, — ты оцениваешь их!

А на этом всё! Мне спасибо, я пошёл… 😊

Обложка
Обложка

#aCheTMq #АЧёТакМожно #Чё? #Windows #Советы #технологии #саморазвитие #компьютер #it #оптимизация #оптимизацияwindows