Я развертываю приложение .NET в IIS через MsDeploy и сталкиваюсь с проблемами производительности в течение первых ~ 5 минут после развертывания кода. Страницы загружаются медленно, создавая негативный опыт для наших пользователей. Я следовал рекомендациям здесь - Исправление медленной начальной загрузки для IIS , но, похоже, они не решили мою проблему.
Я проверил счетчик производительности «Запросы в очереди» и не вижу проблем с очередями запросов. Я догадываюсь, что IIS требует времени для загрузки наших DLL, хотя я предварительно компилирую сайт, и для Batch Compilation установлено значение "true". После этих развертываний кода я запускаю серию вызовов «Warm Up» через PowerShell «Invoke-WebRequest», который сканирует веб-сайт, попадая на все наши страницы, прежде чем разрешить поток трафика клиента на сервер.
С аппаратной точки зрения загрузка процессора составляет ~ 20%, а памяти ~ 40%, поэтому проблема не возникает.
Точнее говоря, вот процесс развертывания:
- Вывод сервера из ротации из балансировщика нагрузки
- Убедитесь, что все соединения с сервером закрытысами по себе
- Развертывание пакета с помощью MsDeploy
- Прогрев веб-сайта с помощью команд PowerShell "Invoke-WebRequest"
- Возврат сервера во вращение
- Ожидание ответараз, чтобы рассчитаться и перейти на следующий сервер
Любая помощь и совет очень ценится. Спасибо!