Уведомление процессора Windows о неправильном поведении приложения ColdFusion
-
08-07-2019 - |
Вопрос
У меня есть веб-приложение, написанное на ColdFusion, которое периодически начинает использовать 100% процессора сервера и приводит к сбою службы ColdFusion.
Поскольку я не смог воспроизвести проблему сам, я хотел бы найти утилиту, которая уведомит меня по электронной почте, когда загрузка процессора начнет расти, чтобы я мог подключиться к серверу, посмотреть на FusionReactor, чтобы увидеть, что происходит, и определить неправильно работающий код.
Я погуглил и не смог найти подходящую утилиту, поэтому решил спросить, нашли ли другие программисты инструмент, который может выполнять подобный мониторинг.Учитывая специфику моих потребностей, я бы предпочел не писать свой собственный инструмент мониторинга.
Если у вас есть другие предложения по решению общей проблемы, я бы тоже хотел их услышать.
Ответы на ответы:
Использование Windows perfmon для запуска командной строки звучит многообещающе.Кто-нибудь может указать мне на учебник о том, как это сделать?
У нас нет системы мониторинга, настроенной на прием SNMP-ловушек.
Мы используем ColdFusion 8 Standard Edition, которая не включает инструменты мониторинга производительности ColdFusion - они есть только в Enterprise.
Ответ Питера Боутона, вероятно, позволит мне решить проблему, но это не помогает мне решать проблему проактивно, поскольку процессор начинает резко загружаться, поэтому я все еще ищу решение для уведомлений.
Решение
У меня была похожая проблема несколько недель назад, и меня направили в программу под названием AlwaysUp.
http://www.coretechnologies.com/products/AlwaysUp/
Контролирует любой процесс с помощью любой комбинации:
- Использование памяти
- Использование процессора
- Невосприимчивость
- Запустите пользовательский скрипт, чтобы определить, следует ли его сбросить
Отсюда вы можете либо перезапустить службу, либо отправить электронное письмо с уведомлением, либо запустить скрипт для регистрации событий и т.д.
У них есть 30-дневная демо-версия, я был продан на 2-й день..Хорошее быстрое решение, пока вы добираетесь до сути проблемы.
Другие советы
В Windows вы можете использовать средства контроля производительности и производительности (perfmon), которые входят в стандартную комплектацию Windows. Когда процессор достигает определенной точки, он может вызвать уведомление SNMP, которое может быть получено большинством инструментов системного мониторинга, и предупредить вас об этом. Он также может запускать команды или делать множество других полезных вещей, которые могут помочь вам его закрепить.
Если вы используете Coldfusion 8, вам доступна другая альтернатива - монитор производительности. Вы можете настроить оповещения для отправки вам электронного письма, вызова другого CFC и т. Д. По другим критериям.
Я часто пользуюсь монитором сервера - это отличный инструмент, хотя я и сам не слишком часто использовал оповещения, их, вероятно, стоит посмотреть, так как их легко настроить. Р>
Что касается общих подходов ...
В нашей компании мы используем Windows Perfmon с одного сервера, чтобы каждые 30 секунд опрашивать все наши CF-серверы, чтобы получить некоторые показатели, такие как общий процессор и среднее время отклика. Мы записываем это в файл CSV. Каждые несколько минут запускается запланированное задание, которое считывает детали этих файлов и сохраняет их в таблицу БД. Затем он обрезает файлы, чтобы они не стали слишком большими. Р>
Наконец, один раз в день мы отправляем в наш технический отдел отчет с подробным описанием всех метрик серверов, в котором отображается график использования процессора и среднего времени отклика для всех наших серверов. Р>
Мы считаем, что это отличный способ раннего сохранения производительности сервера в сознании разработчиков и выявления тенденций (таких как недостаточная загрузка ЦП). Мы сочли это очень эффективным, потому что вы не можете знать, плохо ли вы работаете, пока не начнете измерять свои показатели. Р>
Вам не обязательно получать это уведомление, так как оно происходит - у FusionReactor есть файлы журналов, поэтому вы можете проверить их после того, как это произошло, и определить сценарии, запущенные в то время.
И если вы не уверены, когда это происходит, я вполне уверен, что один из журналов содержит память и использование процессора - хотя я не могу вспомнить, какие имена есть сейчас, но посмотрим в журналы, и вы должны найти соответствующую информацию.