Best performing asp.net session state providers

64,652 views

Published on

Best performing ASP.NET Session State Providers; In-Proc, State Service, SQL Server, Redis, Couchbase, Raven and MongoDb - We test them all.

Published in: Technology
4 Comments
24 Likes
Statistics
Notes
No Downloads
Views
Total views
64,652
On SlideShare
0
From Embeds
0
Number of Embeds
39,092
Actions
Shares
0
Downloads
236
Comments
4
Likes
24
Embeds 0
No embeds

No notes for slide

Best performing asp.net session state providers

  1. 1. @DevOpsGuysblog.devopsguys.com Best performing ASP.NET Session State Providers - 2013 The Results By TheDevMgr @DevOpsGuys http://blog.devopsguys.com Email: team@devopsguys.com
  2. 2. @DevOpsGuysblog.devopsguys.com The Providers IN-PROC & STATE SERVER
  3. 3. @DevOpsGuysblog.devopsguys.com The Providers # Provider Version / NuGet Package / Project Url 1 ASP.NET In-Proc Native .NET 4.5 2 ASP.NET Session State Native .NET 4.5 3 ASP.NET Sql Server Native .NET 4.5 4 CouchBase CouchbaseAspNet v1.1 https://github.com/couchbaselabs/couchbase-aspnet 5 MongoDb MongoDB-ASP.NET-Session-State-Store v 1.1.0 https://github.com/AdaTheDev/MongoDB-ASP.NET-Session-State-Store 6 RavenDb Raven.AspNet.SessionState v1.7.980 https://github.com/mjrichardson/RavenDbSessionStateStoreProvider 7 Redis Harbour.RedisSessionStateStore v1.1.0.0 https://github.com/TheCloudlessSky/Harbour.RedisSessionStateStore
  4. 4. @DevOpsGuysblog.devopsguys.com The Application • ASP.NET MVC 4.5 Web Application with 2 web views; simple and complex. • Simple Session State – strings, integers, doubles, datetimes, timespans and Guids. • Complex Session State – generic lists, array lists, datasets and custom objects
  5. 5. @DevOpsGuysblog.devopsguys.com The Application • Simple state test using 30 objects in session. • Complex state test using 40 objects in session.
  6. 6. @DevOpsGuysblog.devopsguys.com The Load • 1000 concurrent users over 60 minutes for each test. • Each test ran both simple and complex pages (views) to test each session state type. • Origin: EU West (Ireland)
  7. 7. @DevOpsGuysblog.devopsguys.com The Infrastructure • Rackspace UK Public Cloud using OpenStack • Cloud Load balancers x 1 • Cloud Servers x 6 – Windows and Linux
  8. 8. @DevOpsGuysblog.devopsguys.com The Servers Server Role OS RAM Web 1 IIS / ASP.NET Windows 2012 8GB Web 2 IIS / ASP.NET Windows 2012 8GB State Server • State Server Windows 2012 4GB SQL Server • SQL Server 2012 Standard Windows 2012 4GB NoSQLDb-Win • MongoDb • RavenDB Windows 2012 4GB NoSQLDb-Unix • Couchbase • Redis Ubuntu 4GB
  9. 9. @DevOpsGuysblog.devopsguys.com The Monitoring • Web server monitoring only. * • Multiple Windows Performance Counters * Tests conducted before new relic plugins for SQL, mongo, etc released 
  10. 10. @DevOpsGuysblog.devopsguys.com THE RESULTS
  11. 11. @DevOpsGuysblog.devopsguys.com WINNER
  12. 12. @DevOpsGuysblog.devopsguys.com Best Performers # Provider Remarks 1 Redis Overall the strongest performer winning 4 of 6 tests. 2 In-Proc Good performer, but not suitable for web farms. 3 Session State Service Very solid performer. 4 Couchbase Another solid performer. 5 SQL Server Best memory manager, but still a sledge hammer. 6 MongoDb Poor performance under high load, possible memory issues. 7 RavenDb The provider has a memory leak.
  13. 13. @DevOpsGuysblog.devopsguys.com Overall Results # Provider Server Response Time (ms) Throughput (RPM) Response Time (Avg.)(ms) Response Time (Max)(ms) Memory Management Hourly Growth Processor Time (avg) 2 In-Proc 31 7630 401.56 25,002 0.58% 26% 3 Session State Service 33 7590 493.29 26,583 1.74% 29% 5 SQL Server 2012 34 7520 627.05 29,780 -0.26% 23% 1 Redis 33 7640 384.37 23,065 1.38% 20% 6 MongoDb 35 7060 1877.74 120,185 3.57% 25% 4 Couchbase 35 7590 508.99 27,615 1.48% 27% 7 RavenDb 1220 0.267 7584.38 41,512 91.5% 35%
  14. 14. @DevOpsGuysblog.devopsguys.com Couchbase In-Proc MongoDb RavenDb Redis Session State Provider SQL Server 2012 Total 35 31 35 1220 33 33 34 0 200 400 600 800 1000 1200 1400 AxisTitle Server Response Time IN-PROC
  15. 15. @DevOpsGuysblog.devopsguys.com Couchbase In-Proc MongoDb RavenDb Redis Session State Service SQL Server 2012 Total 7590 7630 7060 0.267 7640 7590 7520 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 AxisTitle Transaction Throughput
  16. 16. @DevOpsGuysblog.devopsguys.com Couchbase In-Proc MongoDb RavenDb Redis Session State Service SQL Server 2012 Total 508.99 401.56 1877.74 7584.38 384.37 493.29 627.05 0 1000 2000 3000 4000 5000 6000 7000 8000 AxisTitle External Response Time *Avg
  17. 17. @DevOpsGuysblog.devopsguys.com Couchbase In-Proc MongoDb RavenDb Redis Session State Service SQL Server 2012 Total 27615 25002 120185 41512 23065 26583 29780 0 20000 40000 60000 80000 100000 120000 140000 AxisTitle External Response Time *Max
  18. 18. @DevOpsGuysblog.devopsguys.com Memory Management – Hourly Growth Couchbase In-Proc MongoDb RavenDb Redis Session State Service SQL Server 2012 Total 1.48% 0.58% 3.57% 91.50% 1.38% 1.74% -0.26% -20.00% 0.00% 20.00% 40.00% 60.00% 80.00% 100.00% AxisTitle
  19. 19. @DevOpsGuysblog.devopsguys.com Processor Time (Avg) Couchbase In-Proc MongoDb RavenDb Redis Session State Service SQL Server 2012 Total 27 26 25 35 20 29 23 0 5 10 15 20 25 30 35 40 AxisTitle
  20. 20. @DevOpsGuysblog.devopsguys.com APPENDICES Other notable stuff
  21. 21. @DevOpsGuysblog.devopsguys.com RavenDb Provider Memory Leak • More than 500MBs between overall Min and overall Max and an increasing trend of more than 100MBs per hour
  22. 22. @DevOpsGuysblog.devopsguys.com More Information • We plan to release more information about the test on the DevOpsGuys blog. http://blog.devopsguys.com THANKS FOR READING!

×