Код: Выделить всё
GET /api/data/{id}/subresource
< /code>
Каждый запрос получает связанные данные с SQL Server с использованием Entity Framework. Первоначально все конечные точки были синхронными, и когда мы выпустили основную одновременную одновременную запросы, мы заметили: < /p>
[list]
[*] Постепенно увеличивалось время отклика по запросам - например, с ~ 140 мс до более 3 секунд. (IIS на EC2).
[/list]
после рефакторинга всех конечных точек для использования Async/waw
Таким образом, проблема производительности происходит только при одновременной нагрузке.
Код: Выделить всё
10:43:53 GET /api/data/71/subresource ... 142ms
10:43:53 GET /api/data/33/subresource ... 219ms
10:43:56 GET /api/data/14/subresource ... 3224ms
< /code>
After (async): < /p>
10:54:58 GET /api/data/94/subresource ... 3081ms
10:54:58 GET /api/data/59/subresource ... 3065ms
10:54:58 GET /api/data/17/subresource ... 3045ms
Почему синхронизационные конечные точки демонстрировали постепенный рост латентности под одновременным, а асинхро Вызовы?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... rent-reque