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.
performance
mono
.net
asp.net
Larry Smithmier
quelle
quelle
Antworten:
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:
(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:
(Quelle: mono-project.com )
Einzelheiten zur Konfiguration dieses Setups finden Sie hier:
http://mono-project.com/Mod_mono
quelle
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.
quelle