.Net Framework 4.8 API Возвращает увеличение времени отклика по объемным параллельным запросам даже после Async RefactorC#

Место общения программистов C#
Ответить
Anonymous
 .Net Framework 4.8 API Возвращает увеличение времени отклика по объемным параллельным запросам даже после Async Refactor

Сообщение Anonymous »

У меня есть веб -API ASP.NET на .NET 4.8, который раскрывает конечные точки, такие как: < /p>

Код: Выделить всё

GET /api/data/{id}/subresource
< /code>
Каждый запрос получает связанные данные с SQL Server с использованием Entity Framework. Первоначально все конечные точки были синхронными, и когда мы выпустили основную одновременную одновременную запросы, мы заметили: < /p>
[list]
[*]  Постепенно увеличивалось время отклика по запросам - например, с ~ 140 мс до более 3 секунд. (IIS на EC2). 

[/list]
после рефакторинга всех конечных точек для использования Async/waw 
(с .configureawait (false) ), мы заметили это:


Таким образом, проблема производительности происходит только при одновременной нагрузке.

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»