Мониторинг запущенных процессов windows

Обновлено: 03.07.2024

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

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

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

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

Утилита Process Monitor была создана путём объединения двух разных старых утилит, Filemon и Regmon, которые, как следует из их названий, использовались для мониторинга файлов и активности реестра. Хотя эти утилиты все ещё доступны, и хотя они могут соответствовать вашим конкретным потребностям, вам будет намного лучше с Process Monitor, потому что он может лучше обрабатывать большой объем событий из-за того, что он был разработан для этого.

Также стоит отметить, что Process Monitor всегда требует режима администратора, потому что под капотом он загружает драйвер ядра для захвата всех этих событий. В Windows Vista и более поздних версиях вам будет предложено диалоговое окно UAC, но для XP или 2003 вам нужно будет убедиться, что используемая вами учётная запись имеет права администратора.

События, фиксируемые Process Monitor

Process Monitor собирает массу данных, но не всё, что происходит на вашем компьютере. Например, Process Monitor не заботится о том, перемещаете ли вы указатель мыши, и он не знает, оптимально ли работают ваши драйверы. Он не будет отслеживать, какие процессы открыты и расходуют ресурсы ЦП на вашем компьютере — в конце концов, это задача Process Explorer.

Что он делает, так это фиксирует определённые типы операций ввода-вывода, независимо от того, происходят ли они через файловую систему, реестр или даже сеть. Он также будет отслеживать несколько других событий в ограниченном режиме. Этот список охватывает события, которые он фиксирует:

  • Реестр — это может быть создание ключей, их чтение, удаление или запрос. Вы будете удивлены, насколько часто это происходит.
  • Файловая система — это может быть создание, запись, удаление файлов и т.д., и это может быть как для локальных жёстких дисков, так и для сетевых дисков.
  • Сеть — покажет источник и назначение TCP/UDP-трафика, но, к сожалению, не показывает данные, что делает его немного менее полезным.
  • Процесс — это события для процессов и потоков, в которых процесс запускается, поток запускается или завершается, и т. Д. Это может быть полезной информацией в определенных случаях, но часто это то, что вам нужно вместо этого просмотреть в Process Explorer.
  • Профилирование — эти события фиксируются Process Monitor для проверки количества процессорного времени, используемого каждым процессом, и использования памяти. Опять же, вы, вероятно, захотите использовать Process Explorer для отслеживания этих вещей большую часть времени, но здесь он пригодится, если вам это нужно.

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

Как запустить Process Monitor

Если вы скачали весь пакет SysInternals, то запустите файл Procmon64.exe или Procmon.exe — для 64-битных и 32-битных систем соответственно.

Как уже было сказано, у вас должны быть права администратора.

Интерфейс монитора процесса


Когда вы впервые загрузите интерфейс Process Monitor, вам будет представлено огромное количество строк данных, которые быстро прибывают, и это может быть ошеломляющим. Главное — иметь хоть какое-то представление о том, на что вы смотрите, а также о том, что ищете. За довольно короткое время там могут набраться миллионы строк.

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

Столбцы Process Monitor

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

  • Time — Время — этот столбец не требует пояснений, он показывает точное время, когда произошло событие.
  • Process Name — Имя процесса — процесс, создавшый событие. По умолчанию здесь не отображается полный путь к файлу, но если вы наведёте курсор на поле, вы сможете точно увидеть, какой это был процесс.
  • PID — ИД процесса — идентификатор процесса, создавшего событие. Это очень полезно, если вы пытаетесь понять, какой процесс svchost.exe сгенерировал событие. Это также отличный способ изолировать один процесс для мониторинга, если он не запускается повторно.
  • Operation — Операция — это имя операции, которая регистрируется, и есть значок, который соответствует одному из типов событий (реестр, файл, сеть, процесс). Названия RegQueryKey или WriteFile могут немного сбить с толку, но мы постараемся помочь вам разобраться.
  • Path — Путь — это не путь процесса, это путь к тому, над чем работало это событие. Например, если произошло событие WriteFile, в этом поле будет отображаться имя файла или папки с которыми был обмен данных. Если бы это было событие реестра, он бы показал полный доступ к ключу.
  • Result — Результат — показывает результат операции, который имеет код SUCCESS (успех) или ACCESS DENIED (доступ запрещён). Хотя у вас может возникнуть соблазн интуитивно предположить, что BUFFER TOO SMALL (СЛИШКОМ МАЛЕНЬКИЙ БУФЕР) означает, что произошло что-то действительно плохое, в большинстве случаев это не так.
  • Detail — Подробности — дополнительная информация, которая часто не используется в обычном мире устранения неполадок.

Вы также можете добавить несколько дополнительных столбцов к отображению по умолчанию, выбрав Options → Select Columns. Это не является первостепенной необходимостью при знакомстве с программой, но, поскольку мы объясняем столбцы, об этом стоит упомянуть.


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

  • Command Line — Строка команды — хотя вы можете дважды щёлкнуть любое событие, чтобы увидеть аргументы командной строки для процесса, который сгенерировал каждое событие, может быть полезно быстро просмотреть все параметры.
  • Company Name — Название компании — основная причина, по которой этот столбец полезен, заключается в том, что вы можете просто быстро исключить все события Microsoft и сузить свой мониторинг до всего остального, что не является частью Windows. (Вы должны убедиться, что у вас нет каких-либо странных процессов rundll32.exe, запущенных с помощью Process Explorer, поскольку они могут скрывать вредоносные программы).
  • Parent PID — Родительский PID — это может быть очень полезно при устранении неполадок в процессе, который содержит множество дочерних процессов, таких как веб-браузер или приложение, которое продолжает запускать отрывочные вещи как другой процесс. Затем вы можете отфильтровать по родительскому PID, чтобы убедиться, что вы захватываете их всех.

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

Изучение отдельного события

Просмотр объектов в списке — отличный способ быстро увидеть множество разных точек данных одновременно, но это определённо не самый простой способ изучить отдельный фрагмент данных, а в списке так много информации. К счастью, вы можете дважды щёлкнуть любое событие, чтобы получить доступ к сокровищнице дополнительной информации.

Вкладка Event («Событие») по умолчанию даёт вам информацию, которая во многом похожа на то, что вы видели в списке, но добавит немного больше информации о вечеринке. Если вы просматриваете событие файловой системы, вы сможете увидеть определённую информацию, такую как атрибуты, время создания файла, попытки доступа во время операции записи, количество записанных байтов и продолжительность.


Переключение на вкладку Process («Процесс») даёт вам много полезной информации о процессе, создавшем событие. Хотя обычно Process Explorer используется для работы с процессами, может быть очень полезно иметь много информации о конкретном процессе, который сгенерировал конкретное событие, особенно если это что-то, что произошло очень быстро, а затем исчезло из списка процессов. Таким образом и собираются данные.


Вкладка Stack («Стек») иногда бывает чрезвычайно нужной, но часто бывает совсем неполезной. Причина, по которой вам следует взглянуть на стек, заключается в том, что для устранения неполадок вы работаете со вкладкой Module («Модуль») на предмет чего-либо, что выглядит не совсем правильно.

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


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

Замечания о переполнении буфера

Прежде чем мы продолжим, мы хотим отметить код результата, который вы будете часто видеть в списке, и, исходя из всех ваших знаний, вы можете немного испугаться. Поэтому, если вы начнёте видеть в списке BUFFER OVERFLOW (ПЕРЕПОЛНЕНИЕ БУФЕРА), не думайте, что кто-то пытается взломать ваш компьютер.


Переполнение буфера

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

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

Переход к пути к данным события

Вся эта информация действительно хороша, но никто не хочет исследовать, вручную просматривая каждое место в списке. К счастью, вы можете щёлкнуть правой кнопкой мыши поле Path («Путь») для элемента и использовать опцию Jump To («Перейти к»), чтобы быстро получить доступ к этим данным, чтобы увидеть, что они содержат, и попытаться выяснить, почему приложение вообще запрашивает эти данные.

Примечание. Вы также можете использовать функцию Search Online (поиск в Интернете), чтобы быстро найти имя процесса, путь в реестре или любое другое поле, что может быть действительно полезно, когда вы не понимаете, для чего что-то используется.


В приведённом выше примере вы можете видеть, что приложение, которое мы отслеживали, пыталось просмотреть значение реестра, поэтому мы использовали функцию Jump To, и Process Monitor сразу же открыл редактор реестра, в котором уже найден этот ключ.


Итак, теперь мы знаем, что приложение пытается выяснить, где находится моя папка appdata, и мы знаем, какая это была папка… что помогает объяснить, что происходит.


В данном случае приложение представляло собой поисковую вредоносную программу Conduit, которая искала мою пользовательскую папку, запрашивая регистрацию, чтобы начать возиться с файлами и папками в моем профиле Google Chrome.

Фильтрация данных, которые собирает Process Monitor

Как мы уже упоминали пару раз, фильтры, которые предоставляет Process Monitor, позволяют вам точно контролировать, какие события вы собираетесь захватывать, что значительно упрощает вам работу по выяснению того, что важно в списке. Если вы знаете, что вас не интересуют все события, генерируемые, например, explorer.exe, то было бы разумно просто отфильтровать их, удалив из списка.

Вы можете очень быстро выполнить фильтрацию по любому столбцу, используя контекстное меню и функции Include («Включить») или Exclude («Исключить») - если вы включите элемент, список будет содержать только события, соответствующие этому конкретному элементу или любым другим, которые вы специально включили, но не будут содержать что-нибудь ещё. Если вы исключите элемент, будет отображаться всё, кроме событий, которые соответствуют конкретному элементу, который вы исключили.


В этом случае мы решили включить процесс cltmng.exe, и теперь все, что мы видим в списке, связано с этим процессом.


Вы также можете использовать опцию Edit Filter («Редактировать фильтр») в меню или получить доступ к разделу Filters («Фильтры») меню, чтобы отобразить список фильтров и отредактировать их. Вы можете выбрать из раскрывающихся диалоговых окон и сопоставить по любому из доступных полей, выбрать, будет ли значение, которое вы вводите в поле, совпадать точно, или просто «начинается с», или ряд других параметров. Затем вы можете выбрать, включать или исключать события, соответствующие этим критериям.

Только не забудьте нажать кнопку Add («Добавить») после того, как вы определили фильтр, и прежде чем нажимать «ОК» или Apply («Применить»), потому что в противном случае ваш новый фильтр фактически не будет активирован. Поверьте, это частая ошибка!


Вы также можете удалить или отредактировать фильтры, выбрав их в списке, а затем изменив или удалив их.

Слишком много данных? Попробуйте удалить отфильтрованные события

Если вы точно знаете, что у вас правильные фильтры, чтобы смотреть только на то, что вы действительно хотите видеть, вы можете рассмотреть возможность использования функции Filter -> Drop Filtered Events (Отбросить отфильтрованные события).

На самом деле здесь происходит то, что экземпляр Process Monitor показывает только те элементы, которые соответствуют фильтру, но все остальное по-прежнему фиксируется в фоновом режиме, что может быть ТОННОЙ данных за очень короткое время — обратите внимание на строку состояния в приведённом ниже примере мы работали всего несколько минут. Если бы у нас была включена опция Drop Filtered Events («Отбрасывать отфильтрованные события»), она захватывала бы только те события, которые нам нужны.


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

Сохранение дампов для последующего анализа

И последнее, о чем мы поговорим сегодня, - это функция Open / Save ("Открыть / Сохранить"), которую мы обычно не выделяем в других приложениях, но в данном случае это действительно важно.

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


Следующий урок

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

В предыдущей статье был составлен список из 80 инструментов для мониторинга Linux системы. Был смысл также сделать подборку инструментов для системы Windows. Ниже будет приведен список, который служит всего лишь отправной точкой, здесь нет рейтинга.




1. Task Manager


Всем известный диспетчер задач Windows — утилита для вывода на экран списка запущенных процессов и потребляемых ими ресурсов. Но знаете ли Вы, как использовать его весь потенциал? Как правило, с его помощью контролируют состояние процессора и памяти, но можно же пойти гораздо дальше. Это приложение предварительно на всех операционных системах компании Microsoft.

2. Resource Monitor

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


3. Performance Monitor


Основной инструмент для управления счетчиками производительности в Windows. Performance Monitor, в более ранних версиях Windows известен нам как Системный монитор. Утилита имеет несколько режимов отображения, выводит показания счетчиков производительности в режиме реального времени, сохраняет данные в лог-файлы для последующего изучения.

4.Reliability Monitor


Reliability Monitor — Монитор стабильности системы, позволяет отслеживать любые изменения в производительности компьютера, найти монитор стабильности можно в Windows 7, в Windows 8: Control Panel > System and Security > Action Center. С помощью Reliability Monitor можно вести учет изменений и сбоев на компьютере, данные будут выводиться в удобном графическом виде, что позволит Вам отследить, какое приложение и когда вызвало ошибку или зависло, отследить появление синего экрана смерти Windows, причину его появления (очередное обновлением Windows или установка программы).

5. Microsoft SysInternals


SysInternals — это полный набор программ для администрирования и мониторинга компьютеров под управлением ОС Windows. Вы можете скачать их себе бесплатно на сайте Microsoft. Сервисные программы Sysinternals помогают управлять, находить и устранять неисправности, выполнять диагностику приложений и операционных систем Windows.

6. SCOM (part of Microsoft System Center)


System Center — представляет собой полный набор инструментов для управления IT-инфраструктурой, c помощью которых Вы сможете управлять, развертывать, мониторить, производить настройку программного обеспечения Microsoft (Windows, IIS, SQLServer, Exchange, и так далее). Увы, MSC не является бесплатным. SCOM используется для проактивного мониторинга ключевых объектов IT-инфраструктуры.

Мониторинг Windows серверов с помощью семейства Nagios


Nagios является самым популярным инструментом мониторинга инфраструктуры в течение нескольких лет (для Linux и Windows). Если Вы рассматриваете Nagios для Windows, то установите и настройте агент NSClient ++ на Windows сервер. NSClient ++ мониторит систему в реальном времени и предоставляет выводы с удаленного сервера мониторинга и не только.


Обычно используется вместе с Nagios, предоставляет пользователю удобный веб-интерфейс к утилите RRDTool, предназначенной для работы с круговыми базами данных (Round Robin Database), которые используются для хранения информации об изменении одной или нескольких величин за определенный промежуток времени. Статистика в сетевых устройств, представлена в виде дерева, структура которого задается самим пользователем, можно строить график использования канала, использования разделов HDD, отображать латентость ресурсов и т.д.


Гибкая, масштабируемая система мониторинга с открытым исходным кодом, основанная на ядре Nagios, написанном на Python. Она в 5 раз быстрее чем Nagios. Shinken совместима с Nagios, возможно использование ее плагинов и конфигураций без внесения коррективов или дополнительной настройки.


Еще одна популярная открытая система мониторинга, которая проверяет хосты и сервисы и сообщает администратору их состояние. Являясь ответвлением Nagios, Icinga совместима с ней и у них много общего.


OpsView изначально был бесплатен. Сейчас, увы, пользователям данной системой мониторинга приходится раскошеливаться.


Op5 еще одна система мониторинга с открытым исходным кодом. Построение графиков, хранение и сбор данных.

Альтернативы Nagios

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


Неплохая система мониторинга, собирает данные с нескольких серверов одновременно и отображает все в виде графиков, с помощью которых можно отслеживать все прошедшие события на сервере.


Написан на языке Python с использованием сервера приложений Zope, данные хранятся в MySQL. С помощью Zenoss можно
мониторить сетевые сервисы, системные ресурсы, производительность устройств, ядро Zenoss анализирует среду. Это дает возможность быстро разобраться с большим количеством специфических устройств.

16. Observium


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

17. Centreon


Комплексная система мониторинга, позволяет контролировать всю инфраструктуру и приложения, содержащие системную информацию. Бесплатная альтернатива Nagios.


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

19. Pandora FMS


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


Программное обеспечение с открытым кодом для мониторинга компьютерных систем и сетей.


OpenNMS платформа мониторинга. В отличие от Nagios, поддерживает SNMP, WMI и JMX.

22. HypericHQ


Компонент пакета VMware vRealize Operations, используется для мониторинга ОС, промежуточного ПО и приложений в физических, виртуальных и облачных средах. Отображает доступность, производительность, использование, события, записи журналов и изменений на каждом уровне стека виртуализации (от гипервизора vSphere до гостевых ОС).


Система мониторинга и оповещения (alert system) с открытым кодом от StackExchange. В Bosun продуманная схема данных, а также мощный язык их обработки.


Sensu система оповещения с открытым исходным кодом, похожа на Nagios. Имеется простенький dashboard, можно увидеть список клиентов, проверок и сработавших алертов. Фреймворк обеспечивает механизмы, которые нужны для сбора и накопления статистики работы серверов. На каждом сервере запускается агент (клиент) Sensu, использующий набор скриптов для проверки работоспособности сервисов, их состояния и сбора любой другой информации.

25. CollectM

CollectM собирает статистику об использовании ресурсов системы каждые 10 секунд. Может собирать статистику для нескольких хостов и отсылать ее на сервер, информация выводится с помощью графиков.

26. PerfTrap

PerfTrap собирает метрики с серверов, и с помощью Graphite производится визуализация собранных данных.

27. WMIagent

Если Вы фанат Python, WMIagent для Вас.

28. Performance Analysis of Logs (PAL) Tool

PAL — мощный инструмент, который мониторит производительность и анализирует ее.

30. Cloud Ninja Metering Block

Cloud Ninja Metering Block производит анализ производительности и автоматическое масштабирование мультитенантных приложений в Windows Azure. Такой анализ включает в себя не только определение или проверку счетов за использование ресурсов от Windows Azure, но и оптимизацию ресурсов.


Enigma — красивое приложение, которое поможет Вам следить за всеми важных показателями прямо с рабочего стола.

Платные решения

32. SSC Serv

SSC Serv платный инструмент мониторинга.

33. KS-HostMonitor


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

34. Total Network Monitor



PRTG — простая в использовании, условно-бесплатная программа для мониторинга сети, собирает различные статистические данные с компьютеров, программ и устройств, которые Вы указываете, поддерживает множество протоколов для сбора указанных сведений, таких как SNMP и WMI.

36. GroundWork

37. WhatsUpGold


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


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

39. PowerAdmin


PowerAdmin является коммерческим решением для мониторинга.

40. ELM Enterprise Manager

ELM Enterprise Manager — полный мониторинг от «что случилось» до «что происходит» в режиме реального времени. Инструменты мониторинга в ELM включают — Event Collector, Performance Monitor, Service Monitor, Process Monitor, File Monitor, PING Monitor.

41. EventsEntry


42. Veeam ONE


Эффективное решение для мониторинга, создания отчетов и планирования ресурсов в среде VMware, Hyper-V и инфраструктуре Veeam Backup & Replication, контролирует состояние IT-инфраструктуры и диагностирует проблемы до того, как они помешают работе пользователей.

43. CA Unified Infrastructure Management (ранее CA Nimsoft Monitor, Unicenter)


Мониторит производительность и доступность ресурсов Windows сервера.

44. HP Operations Manager


Это программное обеспечение для мониторинга инфраструктуры, выполняет превентивный анализ первопричин, позволяет сократить время на восстановление и расходы на управление операциями. Решение идеально для автоматизированного мониторинга.

45. Dell OpenManage


OpenManage (теперь Dell Enterprise Systems Management) «все-в-одном продукт» для мониторинга.

46. Halcyon Windows Server Manager


47. Topper Perfmon


Используется для мониторинга серверов, контролирует процессы, их производительность.

48. BMC Patrol


Система мониторинга и управления управления IT — инфраструктурой.

49. Max Management

50. ScienceLogic


ScienceLogic еще одна система мониторинга.


Менеджмент и мониторинг сетей, приложений и инфраструктуры.

Ниже приведен список (наиболее популярных) инструментов для мониторинга сети



Nedi является инструментом мониторинга сети с открытым исходным кодом.

54. The Dude


Система мониторинга Dude, хоть и бесплатна, но по мнению специалистов, ни в чем не уступает коммерческим продуктам, мониторит отдельные серверы, сети и сетевые сервисы.

55. BandwidthD


Программа с открытым исходным кодом.


Расширение для Nagios, позволяет создавать карты инфраструктуры и отображать их статус. NagVis поддерживает большое количество различных виджетов, наборов иконок.

57. Proc Net Monitor


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

58. PingPlotter


Используется для диагностики IP-сетей, позволяет определить, где происходят потери и задержки сетевых пакетов.

Маленькие, но полезные инструменты

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

59. IPMIutil

60. Glint Computer Activity Monitor


61. RealTemp


Утилита для мониторинга температур процессоров Intel, она не требует инсталляции, отслеживает текущие, минимальные и максимальные значения температур для каждого ядра и старт троттлинга.

62. SpeedFan


Утилита, которая позволяет контролировать температуру и скорости вращения вентиляторов в системе, следит за показателями датчиков материнской платы, видеокарты и жестких дисков.

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

Процессы

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

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

Windows процессы состоят из следующего:

  • Закрытое виртуальное адресное пространство, то есть выделенная для процесса часть оперативной памяти, которая называется виртуальной.
  • Исполняемая программа выполняя свой код, помещает его в виртуальную память.
  • Список открытых дескрипторов. Процесс может открывать или создавать объекты, например файлы или другие процессы. Эти объекты нумеруются, и их номера называют дескрипторами. Ссылаться на объект по дескриптору быстрее, чем по имени.
  • Контекст безопасности. Сюда входит пользователь процесса, группа, привилегии, сеанс и другое.
  • Идентификатор процесса, то есть его уникальный номер.
  • Программный поток (как минимум один или несколько). Чтобы процесс хоть что-то делал, в нем должен существовать программный поток. Если потока нет, значит что-то пошло не так, возможно процесс не смог корректно завершиться, или стартовать.

У процессов есть еще очень много свойств которые вы можете посмотреть в “Диспетчере задач” или “Process Explorer“.

Процесс может быть в различных состояниях:

В Windows существуют процессы трёх типов:

  • Приложения. Процессы запущенных приложений. У таких приложений есть окно на рабочем столе, которое вы можете свернуть, развернуть или закрыть.
  • Фоновые процессы. Такие процессы работают в фоне и не имеют окна. Некоторые процессы приложений становятся фоновыми, когда вы сворачиваете их в трей.
  • Процессы Windows. Процессы самой операционной системы, например “Диспетчер печати” или “Проводник”.

Дерево процессов

В Windows процессы знают только своих родителей, а более древних предков не знают.

Например у нас есть такое дерево процессов:

Если мы завершим дерево процессов “Процесс_1“, то завершатся все процессы. Потому что “Процесс_1” знает про “Процесс_2“, а “Процесс_2” знает про “Процесс_3“.

Если мы вначале завершим “Процесс_2“, а затем завершаем дерево процессов “Процесс_1“, то завершится только “Процесс_1“, так как между “Процесс_1” и “Процесс_3” не останется связи.

Например, запустите командную строку и выполните команду title parrent чтобы изменить заголовок окна и start cmd чтобы запустить второе окно командной строки:

Измените заголовок второго окна на child и из него запустите программу paint:

В окне командной строке child введите команду exit, окно закроется а paint продолжит работать:

После этого на рабочем столе останутся два приложения, командная строка parrent и paint. При этом parrent будет являться как бы дедом для paint.

Запустите “Диспетчер задач”, на вкладке “Процессы” найдите процесс “Обработчик команд Windows”, разверните список и найдите “parrent“. Затем нажмите на нём правой копкой мыши и выберите “Подробно”:

Подробности по процессу parrent

Вы переключитесь на вкладку “Подробно” с выделенным процессом “cmd.exe“. Нажмите правой кнопкой по этому процессу и выберите «Завершить дерево процессов»:

Завершаем дерево процессов в диспетчере задач

Окно командной строки Parrent завершится а Paint останется работать. Так мы убедились что связи между первым процессом и его внуком нет, если у внука нет непосредственного родителя.

Потоки

На центральном процессоре обрабатываются не сами процессы, а программные потоки. Каждый поток, это код загруженный программой. Программа может работать в одном потоке или создавать несколько. Если программа работает в несколько потоков, то она может выполняться на разных ядрах процессора. Посмотреть на потоки можно с помощью программы Process Explorer.

  • два стека: для режима ядра и для пользовательского режима;
  • локальную памятью потока (TLS, Thread-Local Storage);
  • уникальный идентификатор потока (TID, Thread ID).

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

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

Волокна и планирование пользовательского режима

Потоки выполняются на центральном процессоре, а за их переключение отвечает планировщик ядра. В связи с тем что такое переключение это затратная операция. В Windows придумали два механизма для сокращения таких затрат: волокна (fibers) и планирование пользовательского режима (UMS, User Mode Scheduling).

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

Потоки UMS (User Mode Scheduling), доступные только в 64-разрядных версиях Windows, предоставляют все основные преимущества волокон при минимуме их недостатков. Потоки UMS обладают собственным состоянием ядра, поэтому они «видимы» для ядра, что позволяет нескольким потокам UMS совместно использовать процессор и конкурировать за него. Работает это следующим образом:

  • Когда двум и более потокам UMS требуется выполнить работу в пользовательском режиме, они сами могут периодически уступать управление другому потоку в пользовательском режиме, не обращаясь к планировщику. Ядро при этом думает что продолжает работать один поток.
  • Когда потоку UMS все таки нужно обратиться к ядру, он переключается на специально выделенный поток режима ядра.

Задания

Задания Windows (Job) позволяют объединить несколько процессов в одну группу. Затем можно этой группой управлять:

  • устанавливать лимиты (на память или процессорное время) для группы процессов входящих в задание;
  • останавливать, приостанавливать, запускать такую группу процессов.

Посмотреть на задания можно с помощью Process Explorer.

Диспетчер задач

Чаще всего для получения информации о процессе мы используем «Диспетчер задач». Запустить его можно разными способами:

  • комбинацией клавиш Ctrl+Shift+Esc;
  • щелчком правой кнопкой мыши на панели задач и выборе «Диспетчер задач»;
  • нажатием клавиш Ctrl+Alt+Del и выборе «Диспетчер задач»;
  • запуском исполняемого файла C:\Windows\system32\Taskmgr.exe.

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

Краткий режим Диспетчера задач

В полном режиме на вкладке «Процессы» виден список процессов и информация по ним. Чтобы получить больше информации можно нажать правой кнопкой мышки на заголовке и добавить столбцы:

Диспетчер задач - Добавление столбцов с информацией

Чтобы получить еще больше информации можно нажать правой кнопкой мышки на процессе и выбрать «Подробно». При этом вы переключитесь на вкладку «Подробности» и этот процесс выделится.

На вкладке «Подробности» можно получить ещё больше информации о процессе. А также здесь также можно добавить колонки с дополнительной информацией, для этого нужно щелкнуть правой кнопкой мыши по заголовку и нажать «Выбрать столбцы»:

Выбор столбцов с информацией о процессах на вкладке «Подробности»

Process Explorer

Установка и подготовка к работе

Более подробную информацию о процессах и потоках можно получить с помощью программы Process Explorer из пакета Sysinternals. Его нужно скачать и запустить.

Некоторые возможности Process Explorer:

  • информация по правам процесса: кто владелец процесса, у кого есть доступ к нему;
  • выделение разными цветами процессов и потоков, для удобного восприятия информации:
    • процессы служб – розовый;
    • ваши собственные процессы – синий;
    • новые процессы – зелёный;
    • завершенные процессы – красный;
    • число дескрипторов у процесса;
    • активность потоков в процессе;
    • подробную информация о распределении памяти.

    Запустите Process Explorer:

    Process Explorer

    Предупреждение о не настроенных символических именах

    Для начала скачиваем установщик «Пакет SDK для Windows 10».

    Устанавливать все не нужно, достаточно при установки выбрать “Debugging Tools for Windows“:

    Установка SDK для Windows 10

    Для настройки символических имен перейдите в меню Options / Configure / Symbols. Введите путь к библиотеке Dbghelp.dll, которая находится внутри установленного «Пакета SDK для Windows 10» по умолчанию:

    • C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\Dbghelp.dll.

    И путь к серверу символической информации:

    Некоторые основные настройки Process Explorer:

    • Смена цветового выделения – Options / Configure Colors.
    • Выбор колонок с информацией о процессах – View / Select Columns.
    • Сортировка процессов – нужно щелкнуть на заголовке столбца Process, при первом щелчке сортировка будет в алфавитном порядке, при втором в обратном порядке, при третьем вернется в вид дерева.
    • Просмотр только своих процессов – View / снять галочку Show Processes from All Users.
    • Настройка времени выделения только что запущенных процессов и завершённых – Options / Difference Highlight Duration / введите количество секунд.
    • Чтобы исследователь процесс подробнее можно дважды щелкнуть на нем и посмотреть информацию на различных вкладках.
    • Открыть нижнюю панель для просмотра открытых дескрипторов или библиотек – Vies / Show Lower Panel.

    Потоки в Process Explorer

    Потоки отдельного процесса можно увидеть в программе Process Explorer. Для этого нужно дважды кликнуть по процессу и в открывшемся окне перейти на вкладку «Threads»:

    Process Explorer (потоки процесса)

    В колонках видна информация по каждому потоку:

    • TID — идентификатор потока.
    • CPU — загрузка процессора.
    • Cycles Delta — общее количество циклов процессора, которое этот процесс использовал с момента последнего обновления работы Process Explorer. Скорость обновления программы можно настроить, указав например 5 минут.
    • Suspend Count — количество приостановок потока.
    • Service — название службы.
    • Start Address — начальный адрес процедуры, который начинает выполнение нового потока. Выводится в формате:«модуль!функция».

    При выделении потока, снизу показана следующую информация:

    • Идентификатор потока.
    • Время начала работы потока.
    • Состояние потока.
    • Время выполнения в режиме ядра и в пользовательском режиме.
    • Счетчик переключения контекста для центрального процессора.
    • Количество циклов процессора.
    • Базовый приоритет.
    • Динамический приоритет (текущий).
    • Приоритет ввода / вывода.
    • Приоритет памяти.
    • Идеальный процессор (предпочтительный процессор).

    Есть также кнопки:

    Задания в Process Explorer

    Process Explorer может выделить процессы, управляемые заданиями. Чтобы включить такое выделение откройте меню «Options» и выберите команду «Configure Colors», далее поставьте галочку «Jobs»:

    Process Explorer — выделение заданий

    Более того, страницы свойств таких процессов содержат дополнительную вкладку Job с информацией о самом объекте задания. Например приложение Skype работает со своими процессами как за заданием:

    Process Explorer — вкладка Job

    Запустите командную строку и введите команду:

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

    В новой командной строке запустите блокнот:

    Далее запускаем Process Explorer и находим такое дерево процессов:

    Устройство Windows. Задания, изображение №3

    Как видим, процесс cmd и notepad это процессы связанные с каким-то заданием. Если дважды кликнуть по любому из этих процессов и перейти на вкладку Job, то мы увидим следующее:

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

    Они отлично подойдут для разового использования. Но если вам нужно часто отслеживать подобную информацию или вы хотите получить более расширенные данные — лучше воспользоваться специализированными инструментами.

    1. Open Hardware Monitor

    • Поддерживаемые платформы: Windows.
    • Цена: бесплатно.

    Удобная утилита для отслеживания температуры процессора и видеокарты, скорости вентиляторов, напряжения батареи, а также других сенсоров. Помимо параметров оборудования, Open Hardware Monitor умеет следить за потреблением ресурсов. Информацию можно просматривать не только в окне приложения, но и через аккуратный виджет, плавающие графики или в трее на панели задач.

    2. CPUID HWMonitor

    Ещё одна программа для мониторинга показаний сенсоров с большой базой оборудования, которую разработчики всегда поддерживают в актуальном состоянии. Датчики сгруппированы по типу и наглядно отображаются в главном окне. Наиболее востребованные параметры при желании можно вывести на панель задач и настроить их внешний вид.

    3. Rainmeter

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

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

    4. iStat Menus

    Одна из самых продвинутых утилит для мониторинга, которая отображает любые параметры компьютера и дополнительные данные, вроде календаря или погоды. iStat Menus отличается невероятным количеством настроек и продуманным интерфейсом.

    Краткую информацию можно просматривать в статусной строке macOS, а более подробную — в выпадающем меню. Причём в последнем случае она подаётся порционно: при наведении на любой параметр раскрываются детальные данные, которые, в свою очередь, тоже разворачиваются в ещё более подробный отчёт.

    5. MenuBar Stats

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

    Нажатие на иконку одного из параметров откроет окошко с подробной статистикой. Последнюю можно просматривать в виде комбинированной сводки по всем данным или отдельно по каждому из элементов.

    6. Stats

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

    7. Conky

    Один из самых популярных инструментов для системного мониторинга в Linux, который умеет выводить на рабочий стол практически любую информацию: от количества памяти и температуры процессора до погоды и играющего в плеере трека.

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

    8. Bashtop

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

    9. Stacer

    • Поддерживаемые платформы: Linux.
    • Цена: бесплатно.

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

    Читайте также: