ASP .NET应用程序缓存

时间:2013-04-16 05:13:32

标签: asp.net asp.net-mvc-3 caching appfabric ncache

我们在ASP .NET中开发的网站预计会有1000个并发用户,并且其性能因数据库中的列表数量增加而降低。什么样的缓存(如NCache或Appfabric)最好减少数据库的负载并提高更多并发用户的性能。请给我一些建议。

4 个答案:

答案 0 :(得分:2)

如果你有多个服务器运行比Appfabric那样的缓存系统会有很大帮助。在构建asp.net缓存系统也很好,如果要用于单个服务器。其中一个最重要的因素是你将拥有的RAM大小。如果要添加越来越多的RAM,您的网站将越来越快。甚至memcache也可以使用Is there a port of memcache to .Net?。即使你看到像堆栈溢出的网站,他们在数据库服务器上有大约380 GB的RAM,这使它快速闪电。甚至SQL Server也意味着将数据保存在RAM中以使其快速访问。

答案 1 :(得分:2)

在使用分布式缓存之前,请先审核网站的性能。我在过去看到太多错误,人们绝对想要应用对他们来说毫无用处的东西。

您的网站会因1000个并发用户而变慢吗?好的,这很正常:小型网站没有像大型网站那样的架构。但是,让我们看看为什么(无序列表):

  • 简单来说,什么是慢?一个页面,整个网站?
  • 网络:您的网络基础架构最优化吗?
  • DB:您的数据库是否超载?您的Queres可以优化吗?
  • MVC:你在使用Async吗?会议?那么web Api呢?
  • Web:网络性能怎么样? (CDN,脚本,CSS,请求数量......)

要尽快检测系统中的瓶颈,有两种方法:负载测试和监控生产系统。

在此背后,有ScaleIn Vs ScaleOut挑战。我不是说分布式缓存不适合你:我只是说做最简单的!

答案 2 :(得分:0)

我强烈建议您查看NCache的ASP.NET应用程序。 NCache

是一个功能非常丰富的.NET应用程序分布式缓存,功能更强大

比App Fabric。

您可以使用NCache进行应用程序数据缓存,ASP.NET会话状态存储和运行时数据共享。

答案 3 :(得分:0)

在GET操作上使用:outputcache/如果您使用保存到db

EF => Configuration.AutoDetectChangesEnabled = false;

代码优化不佳的大多数问题。