Подтвердить что ты не робот

Сравнение IIS и Kestrel

Как выглядит производительность IIS по сравнению с HTTP-сервером Kestrel?

Кажется, что Kestrel значительно вдохновлена ​​семейством асинхронных и управляемых событиями серверных фреймворков. Тем временем IIS имеет долгую историю развития и, очевидно, более зрелую в плане возможностей. Принимая во внимание все это, я специально ищу сравнение использования памяти, использования потоков, сравнения по запросу (например, запрос в секунду) и возможностей потоковой передачи.

4b9b3361

Ответ 1

Вот XSLX файл из репозитория GitHub, где вы можете увидеть сравнение производительности, которое вы ищете.

Откройте файл в Excel и проверьте вкладку "Последние". введите описание изображения здесь

Ответ 2

Я провел сравнительный анализ моего текущего проекта, разместив приложения .net core 1.0 и 2.0 на IIS и Kestrel. Тесты представляли собой реальные CRUD файлы rest-api с аутентификацией/авторизацией, ведением журнала, метриками, ограничением скорости и т.д. Кроме того, основные приложения .net были полностью выполнены книгой MS, что соответствует рекомендованным стандартам 1.0/2.0.

При тех же аппаратных настройках хостинг за IIS постоянно обслуживал примерно на 40% больше запросов в секунду. Я все еще не могу найти статью или консультанта, который может объяснить разницу в производительности.

Я также попытался найти какие-либо советы по оптимизации от основного органа по сравнительному анализу https://github.com/aspnet/benchmarks, покопавшись в настройках и инициализаторах служб, но, тем не менее, IIS был просто быстрее.

Есть указатели?

Ответ 3

По состоянию на ноябрь 2016 года, прямо из тестов ASP.NET.

В Windows Server 2012 при глубине конвейера 16:

stack        on       RT        requests/sec
ASP.NET 4.6  IIS      CLR           57,792 
ASP.NET 5    Kestrel  CoreCLR    1,188,521       

Это ускорение в 20 или 2000%. Я понимаю, что полноценный IIS против автономного Kestrel, но я надеюсь, что кто-то из команды ASP.NET может глубоко погрузиться в это, потому что разница огромна.

Это и почему это намного медленнее в Linux.

benchmark results

Ответ 4

Вот некоторые предварительные тесты Kestrel для команды asp.net. Хотя они не столь исчерпывающие, как вы искали, вы обнаружите, что они публикуют некоторую информацию о RPS. Я уверен, что больше придет, когда они приблизится к выпуску. IIS, которые вы можете найти в Интернете с помощью простого поиска в Google:

https://github.com/aspnet/benchmarks

Ответ 5

Что касается того, почему внутрипроцессный хостинг в IIS быстрее (взят из документов):

При использовании внутрипроцессного хостинга приложение ASP.NET Core запускается в том же процессе, что и его рабочий процесс IIS. Хостинг в процессе обеспечивает улучшенную производительность по сравнению с хостингом вне процесса, поскольку запросы не передаются через адаптер обратной связи, сетевой интерфейс, который возвращает исходящий сетевой трафик обратно на тот же компьютер.

См. Модели хостинга.