Увеличиваем RPS в ASP.NET Core

Опубликовано 24.10.2026 07:31:00 в категории Микросервисы

Четыре способа ускорить API и честный замер в K6.

Что такое RPS?

—  RPS (requests per second) — сколько запросов в секунду сервис обрабатывает успешно
—  Задержка (latency) — сколько ждёт один запрос. Смотрим p95, а не среднее
—  Ошибки — запрос с ошибкой в RPS не засчитывается
—  Цель — больше RPS при той же задержке и на том же железе

Видео

Посмотреть на Boosty.to

Исходные файлы

Проект Порт Назначение
01.Catalog.Slow 5001 Исходная версия: sync-over-async, нет кэша, new HttpClient() на запрос, большой несжатый JSON
02.Catalog.Fast 5002 Та же функциональность после оптимизаций (результат live coding)
03.ExchangeRates.Fake 5003 Имитация внешнего сервиса курсов валют (задержка 20 мс)
LoadTests — Сценарии k6

Исходные файлы решения доступны подписчикам.

Использованные пакеты и инструменты

  • Microsoft.AspNetCore.App (входит в .NET 10): Minimal API, Output Caching, Response Compression, IHttpClientFactory
  • Microsoft.Extensions.Caching.Hybrid — HybridCache
  • System.Text.Json — генератор исходного кода (source generator)
  • Grafana k6 — нагрузочное тестирование
  • dotnet-counters — наблюдение за пулом потоков

Ссылки

Мои видео

Boosty.to | YouTube | Yandex.Дзен | RuTube | VK Video

Больше видео на boosty Calabonga, а если хотите тоже получать донаты, тогда заходите и регистрируйте свою страницу на boosty. Я использую хостинг reg.ru, Подключайся с промокодом 9A17-953A-8591-CF98 чтобы получить скидку 5%

Комментарии к статье ()

Загрузка...

Что-то пошло не по сценарию и завершилось ошибкой. Перезагрузить страницу (F5) 🗙

Переподключаем сервер...

Переподключение сломалось... Пробуем еще раз сек.

Не получилось переподключится.
Пожалуйста, обновите страницу F5

Сессия была поставлена сервером на паузу.

Восстановить сессию не получилось.
Пожалуйста, обновите страницу F5.