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

  • Конечно, у меня включена настройка «всегда включено».
  • Это работает на плане обслуживания S2.
  • Avg пользователей онлайн 3
  • Не настроено вертикальное или горизонтальное масштабирование.

Заявка

  1. Asp.net MVC
  2. .net Framework 4.6.1
  3. C #

У кого-нибудь есть идея, почему эта проблема иногда возникает?

Azure Appl insights -profile

1
Ivo Oostwegel 21 Фев 2020 в 12:23

2 ответа

Лучший ответ

Хорошо, я вижу, исходя из вашего рисунка, что время ожидания составляет 98,71% и много времени ожидания от компилятора, поэтому я рекомендую вам использовать предварительно скомпилированные представления в вашем приложении MVC, чтобы избежать компиляции представлений во время выполнения. Если вы используете Azure DevOps, вы сможете изменить свою задачу для построения решения и добавить следующие параметры в аргументы MSBuild.

/p:PrecompileBeforePublish=true /p:UseMerge=true /p:SingleAssemblyName=AppCode

1
Hugo Barona 21 Фев 2020 в 10:16

Когда вы видите, что веб-приложение работает медленно, важно понять, какие HTTP-запросы являются медленными и являются ли эти HTTP-запросы медленными все время или это проблема с перебоями? Каковы показатели ЦП и памяти и какова медлительность? Если у вас включено приложение Insights для приложения, перейдите на вкладку «Производительность», чтобы увидеть, что запросы были медленными и зависят ли они от внешнего компонента.

Сбор профилировщика CLR в контексте медлительности покажет, на что тратится время.

Вы можете перейти к порталу Azure -> WebApp -> Диагностика и устранение неполадок -> Средства диагностики -> Автоисцеление и включить правило для сбора трассировок профилировщика CLR по медленности.

Как только правило сработает, оно соберет трассировки профилировщика и создаст отчет для вашего просмотра.

0
Samir Jain 23 Фев 2020 в 07:04