2015-12-23 10 views
13

Wie sieht die Leistung von IIS im Vergleich zu einem Kestrel-HTTP-Server aus?IIS vs Kestrel Leistungsvergleich

Scheint wie Kestrel ist deutlich von der Familie der asynchronen und ereignisgesteuerten Server-Frameworks inspiriert. In der Zwischenzeit hat IIS eine lange Entwicklungsgeschichte und offensichtlich ausgereifter in Bezug auf Features. Unter Berücksichtigung all dieser Faktoren suche ich speziell nach einem Vergleich von Speicherauslastung, Thread-Auslastung, anforderungsbezogenem Vergleich (wie Request-per-Sekunde) und Streaming-Fähigkeiten.

+0

Das ist in diesem Stadium einfach unmöglich, wenn Kestrel nicht einmal veröffentlicht wird. Die Leistung von Kestrel alleine ist praktisch nicht vergleichbar mit IIS, da man auch sein Front-End-Nginx in Betracht ziehen muss, und das erfordert viel Tuning, bevor ein gutes Ergebnis erreicht wird. –

+1

@LexLi nicht sicher, dass ich verstehe, was genau unmöglich ist :) Kestrel ist ein Teil der neuen Generation von asp.net Tools und als eigenständiger Server verwendet.Also * ist * verfügbar, da neues asp.net verfügbar ist. Taking über die Leistung, nicht sicher, warum muss ich für die Prüfung eines Front-End-Server setzen - die Idee ist, Auswirkungen auf die Leistung von ereignisgesteuerten Ansatz von Kestrel eingeführt zu testen (und libuv) und IIS Kern – madcyree

+0

es unfair ist, ein vergleichen Full-Feature-Produktion Webserver mit einem begrenzten Feature-Hosting-Server. Betrachten Sie Jetty vs Kestrel gegen node.js, und sie sind ähnlich. –

Antwort

9

Hier ist die XSLX file aus dem Repo GitHub, wo Sie die Leistung comparisson sehen Sie suchen.

Öffnen Sie die Datei in Excel und überprüfen Sie die Registerkarte "Neueste". enter image description here

+1

Dieser Benchmark ist insbesondere "Klartext", es gibt mehrere andere Szenarien, die Benchmarks erhalten. Sie sind alle Szenarien aus [TechEmpower Benchmarks] (https://www.techempower.com/benchmarks/) –

0

Hier sind einige vorläufige Kestrel-Benchmarks vom asp.net-Team. Sie sind zwar nicht so erschöpfend wie das, wonach Sie gesucht haben, Sie werden jedoch einige Informationen zu RPS finden. Ich bin mir sicher, dass mehr kommen wird, wenn sie sich einer Veröffentlichung nähern. IIS-Benchmarks Sie im Internet mit einer einfachen Google-Suche finden:

https://github.com/aspnet/benchmarks

0

Stand November 2016, direkt aus der ASP.NET benchmarks.

Unter Windows Server 2012, bei einer Pipeline-Tiefe von 16:

  • ASP.NET 5 Kestrel: 1.188.521 Anfragen pro Sekunde
  • ASP.NET 4.6 IIS: 57792 Anfrage pro Sekunde

Das ist eine 20x oder 2000% Beschleunigung. Ich verstehe ein vollwertiges IIS vs Standalong Kestrel, aber ich hoffe, jemand im ASP.NET-Team kann tief tauchen, weil der Unterschied enorm ist.

Das und warum ist es so viel langsamer auf Linux.

benchmark results

+4

Cool. Aber niemand verwendet Kestrel ohne HTTP-Server als Proxy, der ein hohes Sicherheitsniveau bewältigen kann. Daher ist Kestrel in der Produktion nutzlos. Nur eine weitere spezielle olympische Disziplin. – Maybe

+2

Warum Kestrel auf Linux hat niedrige RPS vs unter Windows? –

0

Ich habe ziemlich viel Benchmarking für ein aktuelles Projekt, sowohl .net Core 1.0 und 2.0 Anwendungen auf IIS und Kestrel-Hosting. Die Tests waren echte Ruhe-api-CRUDs mit Authentifizierung/Autorisierung, Protokollierung, Metriken, Ratenbegrenzung usw. Außerdem wurden .net-Kern-Apps vollständig vom MS-Buch ausgeführt, das den empfohlenen 1.0/2.0-Standards entspricht.

Mit den gleichen Hardware-Setups lieferte das Hosting hinter IIS konstant rund 40% mehr Anfragen pro Sekunde. Ich kann immer noch keinen Artikel oder Berater finden, der den Leistungsunterschied erklären kann.

Ich habe auch versucht, jede Art von Optimierungstipps von der zentralen Benchmarking-Behörde https://github.com/aspnet/benchmarks zu finden, durch stöberte Einstellungen und Service-Initialisierer, aber dennoch war IIS nur schneller.

Irgendwelche Zeiger?

Verwandte Themen