À quoi ressemblent les performances de IIS par rapport à un serveur http Kestrel?
On dirait que Kestrel est largement inspiré de la famille des infrastructures de serveur asynchrones et pilotées par les événements. Entre-temps, IIS a une longue histoire de développement et de toute évidence une plus grande maturité en termes de fonctionnalités. Tenant compte de tout cela, je cherche spécifiquement à comparer l'utilisation de la mémoire, des threads, des comparaisons liées aux requêtes (comme les requêtes par seconde) et des capacités de streaming.
J'ai effectué de nombreuses analyses comparatives pour mon projet actuel, en hébergeant les applications .net core 1.0 et 2.0 sur IIS et Kestrel. Les tests étaient des CRUD repos-api réels avec authentification/autorisation, journalisation, métriques, limitation de débit, etc. De plus, les applications .net de base ont été réalisées entièrement par MS book, conformément aux normes recommandées 1.0/2.0.
Avec les mêmes configurations matérielles, l’hébergement derrière IIS répondait en permanence à environ 40% de demandes supplémentaires par seconde. Je n'arrive toujours pas à trouver un article ou un consultant capable d'expliquer la différence de performance.
J'ai également essayé de trouver des astuces d'optimisation auprès de l'autorité de référence principale https://github.com/aspnet/benchmarks , en fouillant dans les paramètres et les initialiseurs de service, mais IIS était encore plus rapide. .
Des pointeurs?
À partir de novembre 2016, directement à partir des tests ASP.NET .
Sur Windows Server 2012, à une profondeur de pipeline de 16:
stack on RT requests/sec
ASP.NET 4.6 IIS CLR 57,792
ASP.NET 5 Kestrel CoreCLR 1,188,521
C'est une accélération 20x ou 2000%. Je comprends un IIS complet contre Kestrel autonome, mais j'espère que quelqu'un de l'équipe ASP.NET pourra approfondir cette question car la différence est énorme.
Cela et pourquoi c'est tellement plus lent sous Linux.
Voici quelques repères Kestrel préliminaires de l’équipe asp.net. Même s'ils ne sont pas aussi exhaustifs que ce que vous recherchiez, vous verrez qu'ils publient des informations sur RPS. Je suis sûr que d'autres vont arriver à mesure qu'ils se rapprochent d'une sortie. IIS repères que vous pouvez trouver sur Internet avec une simple recherche google: