Сравнение производительности служб IIS и Kestrel

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

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

4 ответов


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

откройте файл в Excel и проверьте вкладку "последние". enter image description here


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

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

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

какие-нибудь советы?


в ноябре 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       

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

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

benchmark results


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

https://github.com/aspnet/benchmarks