Hat jemand Leistungszahlen, die IIS und .NET mit Cherokee und Mono vergleichen?

8

Ich richte einen Entwicklungsserver ein und möchte ihn für die Bereitstellung von ASP.NET-Seiten mit Mono einrichten. Ich plane die Verwendung von Cherokee und Mono ( http://www.cherokee-project.com/doc/cookbook_mono.html ) und frage mich, ob jemand Leistungstests durchgeführt hat, bei denen der Unix-basierte Stack mit dem Windows-basierten verglichen wurde.

Larry Smithmier
quelle
Am Ende ging ich zur SuseGallery [1] und suchte schnell nach Mono und fand JEOS Mono ASP.net [2], das bereits für das eingerichtet war, was ich wollte. Ich habe gerade damit begonnen, einige ASP.net-Migrationsversuche unter Windows mit VirtualBox durchzuführen. Ich musste nur Apache starten und die Portweiterleitung einrichten. [1]: susegallery.com [2]: susegallery.com/a/0uPadf/jeos-mono-aspnet
Larry Smithmier

Antworten:

7

Wenn Sie Mono / Linux- oder .NET / Windows-Workloads testen, müssen Sie berücksichtigen, dass mehr im Spiel ist als nur die Laufzeitumgebung.

Es gibt Bereiche, in denen Linux eine bessere Leistung als Windows erbringt (die meisten E / A- und Netzwerkvorgänge sind bei vergleichbaren C-Programmen tendenziell schneller). Gleichzeitig verfügt .NET über einen erweiterten Garbage Collector und einen erweiterten JIT-Compiler.

Wenn es um die Klassenbibliotheken geht, hängt es wirklich davon ab, welche Codepfade Sie verwenden. Wie JacksonH in einem früheren Beitrag sagte, können Sie Codepfade aufrufen, die in einer Implementierung optimiert wurden, in der anderen jedoch nicht, und umgekehrt.

Bei ASP.NET-Workloads müssen Sie beachten, dass das Standard-Setup alle eingehenden Anforderungen an einen einzelnen "Worker" -Prozess weiterleitet. Mod_mono und Cherokee verwenden einen ähnlichen Ansatz:

Viele HTTP-Server zu einem Mod-Mono-Server
(Quelle: mono-project.com )

Zumindest mit Apache unterstützen wir einen Mechanismus, mit dem Sie Anwendungs-Workloads auf mehrere Worker aufteilen können. Dies hilft bei hohen Lasten, da keine Prozesssperren auftreten und jedem Worker ein ganzer Thread-Pool zur Verfügung steht:

Weiterleiten von Anforderungen an verschiedene ASP.NET-Hosts mit mod_mono
(Quelle: mono-project.com )
Einzelheiten zur Konfiguration dieses Setups finden Sie hier:

http://mono-project.com/Mod_mono

miguel.de.icaza
quelle
7

Dies ist irgendwie eine Nichtantwort. Hier gibt es jedoch keine wirkliche Antwort. Leider ist dieses Ding stark anwendungsabhängig. Ihre App könnte auf etwas stoßen, das Mono wirklich gut macht, oder Sie verwenden möglicherweise etwas, das schlecht implementiert ist oder einige Fehler aufweist. Es ist nicht wirklich so, dass Mono X-mal langsamer / schneller als IIS ist.

Mein Vorschlag ist, Ihre App zu nehmen, sie auf zwei verschiedenen EC2-Instanzen (einer Windows- und einer Mono-Instanz) bereitzustellen und dort Ihre Tests durchzuführen. Wenn Sie größere Probleme in der Mono-Instanz finden, melden Sie diese bitte, und wir werden versuchen, die Situation zu verbessern.

Trotzdem kann ich Ihnen aus eigener Erfahrung sagen, dass Mono aspx wirklich gute Leistungen erbringt.

Jacksonh
quelle
Seconding - Ich verwende Apache + mod_mono und es funktioniert sehr gut, sobald es gestartet wird. Das einzige Mal, dass ich Langsamkeit sehe, ist während des ersten Ladens der Seite, aber dies ist bei so ziemlich allem (Rails usw.) üblich.
BR