HTTP-запросы веб-сайта Azure ASP.NET поставлены в очередь
У нас есть веб-сайт, развернутый в Azure, который имеет ужасную производительность. Когда нагрузка увеличивается, время отклика увеличивается до целых минут! Загрузка процессора даже не высока, где-то в области 40% (мы запускаем один средний экземпляр (S2)).
После большой отладки (я понятия не имел, что вызвало это), я наконец наткнулся на журнал 'FREB', где говорится, что запросы находятся в очереди:
- AspNetStart Data1 = "GET", Data2 = "/ profiel / aanvullen", Data3 = "" 13: 48: 44.279
- AspNetReqQueued 13: 48: 44.810
- AspNetReqDequeued 13: 49: 39.545
- AspNetAppDomainEnter Data1 = "/ LM / W3SVC / xxxx / ROOT-1-xxxxx
Я думал, что экземпляры Azure будут настроены "оптимально" из коробки, поэтому мне не придется беспокоиться о настройке таких вещей, как maxconnection
или же maxConcurrentThreadsPerCPU
, Сайт не использует базу данных, но он вызывает 2 разных API REST, поэтому я подумал, что там будет очередь. Я пытался проверить webrequest.ServicePoint.ConnectionLimit
собственности, но я помню, что напечатано что-то вроде 2 миллиона (или, возможно, было макс. Int).
Поскольку загрузка процессора низка, Azure не будет раскручивать новый экземпляр, и я не думаю, что другой экземпляр поможет.
В основном у меня есть 2 вопроса:
- Что может быть причиной этого / что я должен изменить?
- Как я мог отладить это? В Azure так много графиков и настроек. Я не уверен, где я могу видеть именно то, что мне нужно увидеть. Является ли пропускная способность узким местом, количеством открытых запросов к определенному веб-сервису, чем-то еще и так далее.