Обновить
8K+
9
Илья Бреговой@Csharponelove

t.me/csharp_ci — net разработчик!

36
Рейтинг
6
Подписчики
Отправить сообщение

Одна строчка .Result роняет ваш ASP.NET Core при CPU 8 %: разбор hill-climbing в .NET 9

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели12K

TL;DR. Один «безобидный» foo.GetAsync().Result в middleware способен превратить ASP.NET Core, державший 50k RPS с p99 = 40 мс, в сервис с 12k RPS и p99 = 4 с — при CPU 8 %.

Виноват не сам blocking call, а hill-climbing — фидбэк-луп в ThreadPool, в недрах которого живёт дискретное преобразование Фурье. Разбираем по исходникам CoreCLR, почему это вообще возможно, воспроизводим эффект на ~80 строках кода и разбираемся, почему SetMinThreads — не решение, а анестезия.

Читать далее

Информация

В рейтинге
238-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Инженер встраиваемых систем
Git
SQL
Python
PostgreSQL
Linux
Docker
Английский язык
Redis
MySQL
ООП