Как устранить задержку перезагрузки приложения ASP.NET с помощью балансировщика нагрузки? - PullRequest
5 голосов
/ 21 декабря 2010

Одна проблема с приложениями ASP.NET заключается в том, что они периодически перезагружаются, вызывая длительную задержку и, возможно, тайм-аут для пользователей, которые посещают сайт в течение этого времени.

Это может не быть проблемой для небольших сайтов,но он может представлять значительное время простоя для сайтов с большим трафиком, если пользователи попадают на узел в перезапускаемой веб-ферме.

Предварительная компиляция может помочь, но для веб-сайтов с большим количеством страниц все еще естьнеизбежная задержка.

Может ли балансировщик нагрузки каким-то образом "знать", перезапускается ли домен приложения ASP.NET на определенном сервере?Затем они могут маршрутизировать трафик вокруг этого сервера, пока приложение не завершит перезапуск.

В настоящее время мой балансировщик нагрузки пингует простую страницу .aspx на сайте.Если происходит задержка или страница не загружается, хост выводится из ротации.Можно ли провести более целенаправленную проверку работоспособности, возможно, на уровне IIS, а не на уровне ASP.NET?

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

Если вы используете IIS7, вы можете заглянуть в модуль прогрева приложения, чтобы запустить приложение даже после сброса AppPool.

http://learn.iis.net/page.aspx/688/using-the-iis-application-warm-up-module/

0 голосов
/ 22 декабря 2010

И IIS6, и IIS7 поддерживают перезапуск пула приложений планирования через фиксированные промежутки времени / интервалы. Если ваш балансировщик нагрузки может выводить узлы из расписания, вы можете синхронизировать эти два расписания.

Вы также можете запрограммировать принудительную переработку из балансировщика нагрузки, посмотрите на http://blog.developers.ie/cgreen/archive/2006/10/20/2341.aspx для 2 вариантов.

Конечно, они не будут обрабатывать случаи, когда пул приложений перезапускается по другим причинам.

...