Для приложения .NET Core 2.2, развернутого на одном хосте AWS EC2, я сравниваю хостинг IIS с обычным хостингом Kestrel.
Для конфигурации IIS я следовал документации MS .
Для Kestrel я просто использовал:
dotnet app.dll --server.urls http://*:5000
Я провожу «стрессовый» тест с JMeter для сравнения пропускной способности.Этот тест просто вызывает конечную точку приложения со 100 потоками в течение 10 секунд (разогрев 5 секунд).Обратите внимание, что конечная точка в основном получает одни и те же данные из базы данных MSSQL Server при каждом вызове, без кэширования и т. Д.
В результате Kestrel не выполняет 75% запросов с закрытыми сокетами / ошибками тайм-аута:
ВОПРОС: Какая ошибка конфигурации может привести к такому поведению Kestrel?Я пытался использовать базовый обратный прокси-сервер nginx перед Kestrel, но все равно получал те же результаты.