2016-04-19 4 views
3

У меня есть приложение ASP.NET Web API (бэкенд для мобильных устройств), опубликованное на Azure. Большинство запросов являются легкими и обрабатываются быстро. Но каждый клиент делает много запросов и делает это быстро при каждом взаимодействии с мобильным приложением.Как увеличить количество обрабатываемых HTTP-запросов?

Проблема заключается в том, что веб-приложение не может обрабатывать даже небольшие (10/с) количество запросов. Рост очереди Http, но CPU нет.

Я провел тестирование нагрузки с 250 запросами в секунду и увеличением времени отклика avg от ~ 200 мс до 5 с.

Возможно, проблема в моем коде? Или это аппаратные ограничения? Могу ли я увеличить количество обработанных запросов за один раз?

Statistic for few active users

Http requests queue

CPU and Memory

ответ

0

Сначала это действительно важно, что случаи вы используете (особенно, если вы используете маленькие и дополнительные небольшие экземпляры), сколько экземпляров вы используете - не ожидайте слишком от 1 ядра и 2 Гб оперативной памяти на сервере.

Используйте кеширование (WebApi.OutputCache.V2 для уменьшения усилий по обработке серверов, кэш-память Azure Redis как кэш-память быстрого доступа), база данных также может быть узким местом.

Если у вас будут одинаковые результаты после добавления большего количества экземпляров на сервер и кеширования - тогда вы должны взглянуть на свой код и найти там узкие места.

И это только общие рекомендации, нет кода в вопросе.

+0

Есть ли среднее количество запросов в секунду для мгновенных типов? Прямо сейчас мы используем один экземпляр S2 (2 ядра, 3.5 gb ram) –

+0

о запросах в секунду - если вы используете тестирование на основе Visual Studio Online Load (.jmx), тогда вы получите правильные результаты, если попытаетесь выполнить тестирование нагрузки на серверах с вашей локальной машины - тогда время может быть неправильным - ваше интернет-соединение может быть узким местом. – Vladimir

+0

Попробуйте добавить еще один экземпляр и взглянуть на нагрузочное тестирование. Но действительно важно проверить ваш сервер из облака (например, Visual Studio Online Load Tesing), а не локально * через Jmeter *. – Vladimir

Смежные вопросы