Задать вопрос
@Mindgrow

Как ускорить время запуска первой страницы (страницы авторизации)?

Добрый день!

При первом входе на сайт ASP MVC страница очень долго загружается (5-7 секунд).
Как можно ускорить время её загрузки?
На сколько я узнал дело может быть связано с различными кэшированиями и ApplicationPool, но я пока не смог разобраться что сделать, чтобы ускорить запуск.

Кто сталкивался с подобными проблемами, подскажите что можно сделать?
  • Вопрос задан
  • 280 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@basrach
Если задержка 5-7 секунд, то скорее всего это связано с остановкой ApplicationPool-а. При отсутствии запросов в течении некоторого времени (по умолчанию 20 мин) IIS останавливает процесс, который обслуживает ап-пул сайта. Соответственно, если приходит запрос и пул остановлен, то IIS-у нужно запустить процесс, поднять все модули для сайта, сам сайт загрузить и запустить, и только после всего этого сайт будет готов обрабатывать запросы. Отсюда такая значительная задержка при первом запросе, все последующие запросы будут обрабатываться быстро.
Чтобы изменить это поведение нужно в IIS-Manager выбрать пул, затем Advanced Settings и там два параметра: "Idle Time-out" и "Idle Time-out Action". Последний отвечает за действие после истечения таймаута, по умолчанию там стоит Terminate, т.е. прерывать процесс, можно изменить на Suspend (приостановить но не убивать процесс). Также там есть параметр "Start Mode", и там стоит по умолчанию OnDemand (по запросу), можно изменить на AlwaysRunning (т.е. всегда запущен).
Но стоит учесть, что постоянно запущенный процесс ап-пула будет потреблять немало памяти и некоторое количество процессорного времени, и если приложение используется редко, то по сути в холостую расходовать ресурсы сервера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Из самого простого можно посоветовать использовать precompile во время публикации и/или фичу auto-start в IIS. Обычно этого бывает достаточно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы