В настоящее время я испытываю стресс-тестирование приложения .Net Core, ориентированного на netcoreapp2.2, которое размещено в Azure как служба приложений, подключенная к плану обслуживания P1V2 (210 ACU, 3,5 ГБ памяти) с 2 экземплярами.
Конечная точка, которую я тестирую, очень проста: она проверяет токен Oauth2.0, получает пользователя и некоторую информацию о нем из базы данных, размещенной на Azure P2 (250 DTU), всего 4 дБ запросов на запрос ивозвращает строку «Pong».
При запуске 15 одновременных пользователей (или более) в 200 циклах я вижу остановки в обработке, видимые на изображении (между высокими пиками).План обслуживания никогда не затрагивает ЦП более чем на 20-35%, а база данных никогда не использует более 2% нагрузки.Увеличение количества пользователей снижает среднюю пропускную способность.
Когда вы смотрите на медленные запросы, это похоже на случайную остановку, а не в одном и том же месте.Когда я смотрю на запросы к БД, я никогда не вижу запроса, который занимает больше пары сотен миллисекунд, в то время как для обработки некоторых запросов может потребоваться до 5-6 секунд.
Такое ощущение, что я достигаю некоторого предела, что приводит кчто-то останавливается на некоторое время, но я не могу понять, в чем проблема.
При локальном запуске того же напряжения я не вижу этих остановок.
Я используюjmeter cli для проведения стресс-тестов в обеих средах.
Любая помощь очень ценится, спасибо!