Подтвердить что ты не робот

Azure Web Apps действительно медленны

Я изучаю медленное время прогрева для моего производственного приложения, и у меня появились неожиданные результаты.

Тестирование на различных Azure VM показало, что время прогрева должно быть хорошо связано с производительностью сервера приложений (так что это не внешний запрос, включая sql), но действительно интересным является сравнение с Azure Web Apps и моей локальной локальной машиной ( все время составляют средние значения от примерно 3 пробегов):

VM A0:            >1m
VM A2:            13s
VM D2V2:           6.8s
VM D5V2:           7.8s
Wep App P2:       25s
Web App S2:       26.5s
My local machine:  6.6s

Мой локальный компьютер i5 с 3,3 ГГц.

Локальная машина работает быстрее, даже если она подключается к одной базе данных SQL Azure через Интернет, а запрос включает проверку модели Entity Framework.

Все тесты используют .NET 4.6.1, новейшую версию в настоящее время.

Очевидный вывод:

  • Мой четырехъядерный настольный компьютер быстрее любого размера Azure VM для заданий, которые не являются параллелизуемыми.
  • Azure Web Apps работает на картофеле, даже если вы готовы потратить 500 баксов в месяц.

Это кажется подозрительным. Любые идеи, что еще может произойти? Или что тестировать?

РЕДАКТИРОВАТЬ после некоторого профилирования: Ни один из следующих вариантов не проливает свет на мой вопрос, но это все еще интересная информация (протестирована на другой A2 VM с общим временем запроса 20 с при подключении профайлера):

  • 58% дробит.
  • Блокировка файлов IO практически равна нулю (приложение было запущено до этого, поэтому я думаю, что все необходимые части dll находятся в кеше памяти).
  • < 1% - запросы SQL Azure.
  • Таким образом, остальная часть 90% времени работы должна быть выполнена .NET или служебной информацией профайлера.
  • Сам профайлер имеет довольно накладные расходы, так как запрос выполняется всего за 15 секунд без него (я использовал пробную версию JetTrack dotTrace, которая мне очень нравится)
  • 50% времени находится во время первого запроса с Entity Framework, 80% которого - джиттинг
  • 15% - это первое использование SignalR, почти без джинга (что-то вроде абсурда)

Почти не выполняется распараллеливание.

4b9b3361

Ответ 1

У меня тоже такая же проблема, я исправил перемещение или копирование содержимого моего сайта (Картинки и видео) в хранилище Azure Blob. Мы также можем настроить Azure CDN на WebApps, VM, облачные службы и пользовательское происхождение. Попробовав thsi Azure CDN, ваше время загрузки вашего сайта улучшится.

Ответ 2

Первоначально, когда мы развернули наше приложение Azure App Service - веб-приложение (размещенное в Resource Group1) и нашу базу данных Azure SQL (размещенную в Resource Group2), приложение было очень медленным. Ошибка, которую я сделал, заключалась в том, что оба RG1 vand RG2 были в двух разных местах. Позже, когда мы изменили расположение обоих RG (на самом деле воссоздали их), то WebApps начал работать гладко.

Спасибо, Prawin