Я вижу, что в iis 7.5 я могу установить Предел использования ЦП% на указанный период времени для пула приложений. Я также могу заставить его убить рабочий процесс, если этот предел будет нарушен. Если ему прикажут это сделать, будет ли рабочий процесс автоматически перезапущен после его остановки, или потребуется ручное вмешательство?
При переполнении стека есть упоминание, что Это жестяная банка перезапускается по завершении интервала ...
Учитывая комментарии в другом ответе, я провел собственное тестирование, которое я воспроизведу здесь.
В моем тестировании ограничение пула приложений (интегрированная версия 4.0) небольшим пределом ЦП (0,01%) и небольшим интервалом (1 минута) с УбитьW3WP действие включено, превышение этого лимита убивает w3wp на остановка пула приложений.
После достижения предельного интервала пул приложений автоматически перезапускается.
Изменение действия на Бездействие не изменяет процесс w3wp.
В обоих случаях регистрируется системное событие 5025.
Это похоже на один из тех случаев, когда моделирование (или доступ к исходному коду ...> вздох <), вероятно, будет единственным способом увидеть, каково поведение с какой-либо степенью уверенности.
Документация для запись в журнале событий для повторного использования квоты ЦП говорит о переработке следующим образом:
По умолчанию перезапуск пула приложений перекрывается, что означает, что рабочий процесс, который должен быть остановлен, продолжает работать до тех пор, пока не будет запущен новый рабочий процесс. После запуска нового рабочего процесса ему передаются новые запросы. Старый рабочий процесс завершает работу по завершении обработки существующих запросов или по истечении заданного времени ожидания, в зависимости от того, что наступит раньше. Такой способ утилизации гарантирует бесперебойное обслуживание клиентов. Однако, если приложение в пуле приложений не может запускать более одного экземпляра одновременно, перекрывающееся вращение можно отключить.
Мне кажется, что по определению завершение рабочего процесса из-за чрезмерного потребления ЦП будет означать, что ожидающие запросы не будут разрешены для выполнения (поскольку они исчерпывают квоту ЦП).
Говоря о вашей основной проблеме: я не вижу ничего, что заставило бы меня поверить, что новый рабочий процесс не будет запускаться автоматически. Заявление в вашей ссылке на переполнение стека заставляет меня задаться вопросом, может ли алгоритм, используемый IIS, на самом деле связывать переработку с разрешением таймера, используемого для измерения исчерпания квоты ЦП. Наилучший из известных мне способов определить это - написать компонент на стороне сервера, который тратит ресурсы ЦП, развернуть его в тестовой среде и посмотреть, как действует его поведение при повторном использовании. Достаточно простого компонента, который находится в замкнутом цикле в течение нескольких секунд, а затем возвращает известную строку, в сочетании с клиентом, выполняющим тестовую программу с чем-то вроде пула параллельных процессов «wget». Забейте на него кучу параллельных запросов от клиента и сообщите о том, как запросы могут получать правильный ответ по сравнению с сообщениями об ошибках и т.д. в исходном коде ...)