Каким образом можно отслеживать работу программы в операционной системе Windows?

Какое бесплатное программное обеспечение для Windows вы можете порекомендовать для мониторинга потребления ресурсов, таких как память и загрузка CPU, для многопоточных программ, например, базы данных PostgreSQL? Мне нужно, чтобы программа могла суммировать использование ресурсов всех потоков и предоставлять полученные данные для системы мониторинга через SNMP.
  • 15 апреля 2025 г. 15:25
Ответы на вопрос 3
Для отслеживания работы программ в операционной системе Windows, а также для мониторинга их потребления ресурсов, таких как память и загрузка ЦП, вы можете воспользоваться следующими инструментами:

1. **Windows Performance Monitor (PerfMon)**:
   - Встроенный инструмент Windows, который позволяет отслеживать и анализировать производительность системы в реальном времени.
   - Вы можете создавать кастомные наборы счетчиков для отслеживания использования ЦП, памяти и других ресурсов конкретными процессами.
   - Выгруженные данные можно интегрировать с системами мониторинга.

2. **Process Explorer**:
   - Это утилита от Sysinternals (принадлежит Microsoft), которая предоставляет более детальную информацию о работающих процессах и их потоках.
   - Можно отслеживать использование ресурсов запущенными процессами и группировать данные по потокам.

3. **Resource Monitor**:
   - Встроенный инструмент Windows, который позволяет отслеживать использование CPU, памяти, диска и сети в реальном времени.
   - Позволяет увидеть, какие процессы используют ресурсы и в каком объеме.

4. **Prometheus с экспортерами**:
   - Если вам необходимо интегрировать мониторинг с системой SNMP, вы можете использовать Prometheus в сочетании с различными экспортерами, например, с `Windows_exporter`.
   - Он может собирать метрики о производительности системы и представлял бы их в формате, удобном для системы мониторинга.

5. **Netdata**:
   - Бесплатное и открытое решение для мониторинга, которое может отслеживать множество метрик в реальном времени, включая ресурсы CPU и памяти.
   - Если установить Netdata и его плагин для SNMP, вы сможете мониторить использование ресурсов через SNMP.

6. **Nagios или Zabbix**:
   - Специализированные системы мониторинга, которые можно настроить для отслеживания различных метрик, включая потребление ресурсов процессами.
   - Поддерживают расширения для работы с SNMP.

Для специфического мониторинга многопоточных программ, таких как PostgreSQL, можно использовать комбинацию предложенных инструментов (например, PerfMon для сбора данных и Prometheus для отображения) или специализированные решения, направленные на мониторинг баз данных.
powershell 
Пишешь в две строки скрипт, который собственно получает от ОС информцию о нагрузке и суммирует.
Агент того же заббикса будет этот скрипт вызывать и дальше куда-то сохранять.

Минус только в том что pwsh не мгновенно запускается и сам по себе сколько-то жрёт.

Вообще, если ты уже используешь какой-нибудь prometheus для метрик, то можно поискать какой-нибудь готовый экспортер для постгреса, чтобы не велосипедить.
Например Zabbix, Munin, Grafana + Prometheus.
Похожие вопросы