Our site developed in ASP .NET is expecting a 1000 concurrent users and its performance is degrading by increasing number of listings in DB. What kind of a caching(like NCache or Appfabric) will be the best to reduce the load of DB and increase the performance for more concurrent users.Please give me some suggestions.
4 Answers
If you have multiple server running than Appfabric kind of Caching system will help a lot. In build asp.net caching system is also good if are going to use for the single server. One of the most important factor will be the RAM size you are going to have . If are going to add more and more RAM your website will be faster and faster. Even memcache can also be used Is there a port of memcache to .Net? . Even if you see website like stack overflow they have around 380 GB of RAM on the Database server, which is making it lightening fast. Even SQL Servers are meant to keep the data in the RAM to make it fast access.
Before using a distributed cache, audit the performance of your web site first. I have seen too many errors in the past where people absolutely want to apply something that will be useless for them.
You site becomes slow with 1000 concurrent users ? Okay, this is pretty normal : small web sites are no architectured like large web sites. But let's see why (unordered list) :
- Simply, what is slow ? a page, the entire web site ?
- Network : is your network infrastructure optimal ?
- DB : Are your database overloaded ? Can your Queres be optimized ?
- MVC : Are you using Async ? Sessions ? What about web Api ?
- Web : What about web performance ? (CDN, scripts, CSS, number of requests, ...)
To detect as soon as possible bottlenecks in your system, there two ways : load testing and monitoring production system.
Behind this, there is the ScaleIn Vs ScaleOut challenge. I don't say that a distributed cache is not the good solution for you : i'm just saying do the simplest !

- 24,378
- 8
- 83
- 112
I strongly encourage you to take a look at NCache for your ASP.NET application. NCache
is a very feature rich distributed cache for .NET applications and much more powerful
than App Fabric.
You can use NCache for application data caching, ASP.NET Session State storage, and runtime data sharing.

- 132
- 3
On GET action use: outputcache/
if you use on save into db
EF => Configuration.AutoDetectChangesEnabled = false;
Most of the problems in a poorly optimised code.

- 2,232
- 3
- 25
- 44

- 1
- 2