Периодические проблемы с производительностью веб-приложения Azure с ошибками ASYNC_NETWORK_IO
Наше веб-приложение неожиданно испытывает прерывисто низкую производительность (медленная загрузка страниц, медленные Ajax-вызовы, идущие от <1 секунды до более чем 20 секунд). Единственная подсказка - когда приложение замедляется, мы видим, что сервер MS SQL ожидает сообщения ASYNC_NETWORK_IO. Эти ошибки, а также замедление происходит как при интенсивной, так и при небольшой нагрузке на сервер (что определяется количеством подключений).
Это приложение работает без проблем в течение нескольких месяцев, единственное недавнее изменение в Azure- добавление автоматического масштабирования и откат SQL-сервера несколько месяцев назад. Само приложение находится в стадии рутинной разработки и развертывания.
Мы рассмотрели код, чтобы увидеть, могли ли какие-либо недавние изменения в кодировании повлиять на производительность приложения -> с точки зрения SQL, но ничего не удалось найти (все вызовы базы данных проходят через NetTiers DAL).
Описание: Развертывание приложения MVC 4 Azure, мультитенантное, с автоматическим масштабированием MS SQL Server, с резервным Azure Storage NetTiers DAL.
Будем благодарны за любые идеи по поводу неустойчивой производительности.
1 ответ
ASYNC_NETWORK_IO означает одну из двух вещей.
- Ваш код недостаточно быстро обрабатывает данные из приложения. У вас большие наборы строк или обработка строк за строкой, и сервер приложений просто не может идти в ногу по какой-то причине.
- Есть проблема с сетью.
Поскольку вы размещены в Azure, скорее всего, это # 1, и проблема не обнаруживалась раньше, потому что наборы записей просто не были достаточно большими, чтобы вызвать проблему. Возможно, что сеть между серверами приложений / веб-серверами и сервером базы данных просто работает с максимальной пропускной способностью, что потребует обращения в службу поддержки для проверки.