Ситуация, которую мы пытаемся разрешить, такова:
У нас есть веб-API .NET 6 с методами синхронного контроллера, использующими аутентификацию токена носителя и System.Data.SqlClient для доступа к SQL. База данных Server 2019 со столбцами идентификаторов типа int.
Мы обновили ее до .NET 8 Web Api с методами синхронного контроллера, использующими Bearer Token Auth и Microsoft.Data.SqlClient для доступа к тому же SQL-серверу. База данных 2019 года со столбцами идентификаторов типа int.
Мы провели тесты производительности конечных точек на обеих системах с 60 одновременно работающими пользователями в течение 1 часа.
Версия .NET 6 зафиксировано среднее время ответа 1–2 секунды.
Версия .NET 8 зафиксировала среднее время ответа 15–20 секунд.
Мы отслеживали Сервер БД и сервер приложений во время проведения тестов не показывают никаких показателей, указывающих на наличие очередей, конкуренцию, ожидание запросов, а также использование памяти и ЦП все время ниже 40%.
Когда мы смотрим на Чем дольше продолжается тест, тем сильнее ухудшается время отдельного запроса/ответа.
Мы не можем понять, почему существует такая значительная разница.
Есть идеи, где искать?
Мы оптимизировали базу данных так, чтобы все запросы к базе данных выполнялись быстрее 10 мс.
Мы отслеживали счетчики производительности для блокировок и потоков .NET, а также очереди запросов, ожидая увидеть счетчики, указывающие на проблему, но не обнаружили никакой активности.
Производительность сервера не является проблемой, поскольку у него достаточно процессора и объем памяти. Сетевая активность также находилась в пределах порога.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -6-web-api
Серьезное снижение производительности веб-API .NET 8 по сравнению с веб-API .NET 6. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Снижение производительности C# для литералов Int32 для чисел с плавающей запятой
Anonymous » » в форуме C# - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-