ASP.NET Session-State-Performance-Benchmarks
Ich habe eine Menge toller Informationen vergleichen, InProc, StateServer und SQLServer für ASP.NET state-management, aber ich kann nicht scheinen, finden alle performance-benchmark-Vergleiche. Es ist klar, dass InProc ist schneller als StateServer, die wiederum schneller als SQL-Server, aber es ist nicht klar, wie viel schneller. Ich merke, dass es variiert stark von Anwendung und Umgebung, aber eine relative Vorstellung davon, wie Sie zu vergleichen, wäre sehr wertvoll.
Kennen Sie benchmarks, die durchgeführt wurden, die Sie teilen könnten? oder haben Sie eine persönliche Erfahrung mit diesem? Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine gute benchmarks "DevOps" - Jungs.
http://www.slideshare.net/devopsguys/best-performing-aspnet-session-state-providers Vergleich
AppHarbor empfiehlt auch, memcached, aber nicht über einen benchmark.
http://support.appharbor.com/kb/tips-and-tricks/using-memcached-backed-sessionprovider
und bietet eine Session-Anbieter https://github.com/friism/Memcached-Providers
Ich persönliche Erfahrung haben, aber keine benchmarks oder tatsächlich erfassten Metriken zu teilen. Wir erstellen zunächst ein Asp.Net Website, die gespeichert einer größeren als der üblichen user-Objekt in der session mit der Process-Methode. Wir haben festgestellt, dass die Größe des Objekts und die Art unserer Fehler-handling-Bibliotheken verursacht 2 unerwünschte Verhaltensweisen. Der erste war ein recycling der application-pool in unregelmäßigen Abständen während der Prozesse. Weil die w3wp.exe Verfahren wiederaufbereiten sich midstream, es würde sich im wesentlichen dump der Sitzung und dem Objekt verloren gehen würde. Dies verursacht weitere code-kick und Reparatur der Sitzung, und es erhöht die Latenzzeit von Transaktionen. Wir finden auch, (obwohl es war nicht ein schreckliches problem, und ich habe nur entdeckt beim Versuch zu Debuggen, der Gedächtnisverlust, die ich gerade beschrieben), dass die Größe des Objekts in der session zusammen mit einigen der Objekte, die geladen werden, die in Bibliotheken für die Seite selbst verursachen würde w3wp.exe zur Seite selbst in die und aus mehrmals. Für kleinere Anfragen, die nur entweder das session-Objekt oder diese Bibliothek von Objekten, aber nicht beide, es war keine ungerade paging-Verhalten auf den Prozess.
Bewegung von InProc zu StateServer, entdeckten wir eine sofortige Rückkehr auf das recycling. Der pool tatsächlich endete das recycling weniger, und selbst wenn es Tat, unsere session-Objekte blieben in einem separaten Speicher. Wir haben auch festgestellt, dass dies erstellt eine Allgemeine "library-only" - Zustand, wie oben beschrieben, mit Bezug auf die Auslagerungsdatei und wir nicht mehr (obwohl, zugegeben, ich hielt die überprüfung nach 1 Monat Betriebszeit). Wir haben Sie abholen eine sehr geringe Latenz im Zugriff auf bestimmte framework-Bibliotheken an der Zeit, aber wenn wir ein Upgrade von 2.0 auf 3.5, diesen Zugang Anomalien ganz verschwunden. Wir hoffen auf eine ähnlich Verhalten, wenn wir ein upgrade von 3.5 auf 4.0 bald.
Einer test-site mit SQLServer als eine Staatliche Steuerung wurde versucht, und die einzige Wartezeit, die wir fanden, war die anfängliche session-Erzeugung/- Speicherung. Nachfolgende Aufrufe von update/Zugriff auf die session in SQL keinen wirklichen Unterschied von den StateServer-option. Ich habe nicht alle Metriken, aber es war nichts, auf keinem der Systeme, die zeigte, dass ein Unterschied im Verhalten. Timestamps hatte vergleichbare Unterschiede in allen Aspekten. Ein Vorteil, den wir haben gewinnen, aber es war selten nutzungspotenzial, war, dass wir waren in der Lage, um einige unserer Anwender-Datenbank direkt mit der session state-server und vergleichen die Zeitstempel, Status, und andere spezialisierte session-Variablen direkt. Wir hatten keine wirkliche Notwendigkeit für diese Funktion, und den StateServer-option war bereits in vollem Gange auf unserer Produktions-Server, also eine Bestimmung so zu belassen, wie es war.
In das Ende, es war nicht die Geschwindigkeit so viel wie die Speichernutzung, die uns davon überzeugt, dump InProc für StateServer. Die Vorteile der access-speed definitiv nicht überwiegen müssen, um die Daten im Speicher in den ersten Platz.