Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Best performing asp.net session state providers

69,894 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

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!

×