У меня периодически возникают проблемы с моим приложением. Он всегда находится под относительно высокой нагрузкой (10-50 запросов в секунду). В большинстве случаев он работает отлично, с CPU <10%. Время от времени (примерно раз в неделю) он внезапно достигает 100% ЦП в течение примерно 3 минут, а затем остается на этом уровне, заставляя сервер не отвечать, пока я не убью w3wp.exe. Продолжаю пытаться отладить эту проблему. А пока мне нужно временное решение.
Есть ли сервис или инструмент, который я могу использовать для мониторинга w3wp.exe и автоматического завершения процесса, если его использование превышает 80% в течение определенного периода времени?
IIS может позаботиться об этом самостоятельно; вы можете настроить пул приложений для повторного использования (т. е. перезапуска), когда использование его ЦП остается выше определенного порога в течение заданного периода времени.
Я не знаю, есть ли в вашей среде другие машины, но я бы посоветовал поставить некоторый мониторинг. Nagios, Zabbix или подобное приложение. Они могут отслеживать использование процессора / дискового пространства / памяти / и т. Д. И т. Д., Если использование вашего процессора остается более 80% или 90% в течение любого количества времени, которое вы считаете слишком долгим, вы можете заставить эту систему мониторинга запустить задание (zabbix - это возможность сделать это, вызвать внешние элементы), чтобы убить этот пул. Однако с этим решением требуется немного обучения, вам нужно будет изучить приложение и написать сценарий для перезапуска пула приложений ... что-то вроде приложения .net или сценария vb, который использует приложение IIS для определения пул приложений, ответственный за это, а затем завершение этого процесса из командной строки.