Подскажите программу для мониторинга потребления программами ресурсов (Windows)
Существует следующая система. На удалённом Windows-сервере (Server 2008 R2) периодически запускаются довольно ресурсоёмкие процессы в нескольких экземплярах (с одного экзешника). Кол-во экземпляров от 1 до 20-30 может быть одновременно. Один процесс может съедать до 1 ГБ ОЗУ и прилично процессора (~1 ГГц, если можно так выразиться).
Процессы запускаются, отрабатывают минут 30 и закрываются. По запросу с удалённой системы запускаются новые.
Задача следующая — измерять потребление ресурсов каждым процессом и общей загрузки системы. В идеале искомая программа отправляет емейл/смс при превышении потребления ресурсов, но хотя бы просто ведёт лог у себя с возможностью просмотра.
Стандартный Windows-ский монитор не подходит (ни диспетчер задач, ни системный монитор — последний не может мониторить разные экземпляры одного экзешника, притом подхватывать вновь запущенные, или я не умею его готовить?)
Не очень подходит. Он всего последние 1000 секунд логирует, плюс, похоже, все инстансы одной программы в один график объединяет. Это тоже хорошо, но нужно ещё и по инстансам разделять.
Так да не так. См. Performance -> Data Collector Sets -> User Defined.
Там можно создать свой набор собираемых параметров, указать, сколько и когда писать данных (я таким способом в свое время больше месяца мониторил).
Потом через раздел Reports можно посмотреть всю собранную информацию.
Что касается суммирования всех экземпляров программы — это тоже не так. Я точно мониторил экземпляры jvm по-отдельности. Но пошагово не помню как, к сожалению.
Есть ещё одно решение, но оно громоздкое — система мониторинга Zabbix, она умеет впринципе все что нужно собирать, а затем уведомления рассылать, а так же вести лог и графики строить.