Azure Проблема с производительностью AppService - PullRequest
0 голосов
/ 06 мая 2020

У нас есть ASP. Net Core 2.1 Web API, размещенный в AppService (S1), который взаимодействует с Azure SQL DB (S1-20DTU). Оба находятся в одном регионе. Во время нагрузочного тестирования мы обнаружили, что некоторым экземплярам API требуется слишком много времени, чтобы вернуть результат.

Мы пытались устранить проблему с производительностью, и ниже представлены наши наблюдения.

  1. API отвечает в течение 0,5 секунды большую часть времени.
  2. Все методы API асинхронны c методов.
  3. Иногда требуется от 50 секунд до минуты.
  4. Использование ЦП и памяти ниже 60%
  5. База данных имеет емкость 20 DTU, из которых Во время нагрузочного тестирования используется 6 DTU.
  6. В приведенном ниже примере снимка из Application Insights мы видим, что общая продолжительность запроса составила 27,4 секунды. Но продолжительность зависимости базы данных составляла всего 97 мс. До вызова базы данных активности нет. См. Пример ниже.

Кто-нибудь, пожалуйста, помогите мне понять, что происходило за эти 27 секунд ожидания. В чем может быть причина этого?

enter image description here

Ответы [ 2 ]

1 голос
/ 06 мая 2020
  1. Я бы рекомендовал проверить карту приложения в ресурсе Application Insights, как показано ниже, чтобы дважды проверить зависимости.

enter image description here

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

enter image description here

Используйте асинхронные c методы в вашем API, чтобы максимально использовать ЦП. Возможно, потоки рабочего процесса достигают пределов, и ваше приложение является узким местом. Вы получите некоторую информацию, когда запустите отчет, упомянутый в пункте 2 выше.
0 голосов
/ 06 мая 2020

Уровень S1 будет поддерживать не более 900 одновременных сеансов. Если количество запросов в секунду (частота запросов в секунду) во время нагрузочного теста очень велико, могут возникнуть проблемы.

Также S3 и выше рекомендуются для интенсивных рабочих нагрузок. Проверка правильности закрытия всех соединений также помогает

Подробную информацию о различных ценовых уровнях и их возможностях можно найти по ссылке ниже https://docs.microsoft.com/en-us/azure/sql-database/sql-database-dtu-resource-limits-single-databases

...