2013-04-16 47 views
2

我们在ASP .NET中开发的站点预计会有1000个并发用户,并且由于数据库中列表数量的增加而导致其性能下降。什么样的缓存(如NCache或Appfabric)将是最好的减少数据库负载并提高性能的并发用户。请给我一些建议。ASP .NET应用程序缓存

回答

2

如果你有多台服务器运行比Appfabric类的缓存系统将有很大的帮助。在构建asp.net缓存系统也是好的,如果要用于单个服务器。其中最重要的因素是你将拥有的RAM容量。如果要添加更多RAM,您的网站将更快,更快。即使memcache也可以使用Is there a port of memcache to .Net?。即使你看到堆栈溢出这样的网站,他们在数据库服务器上也有大约380 GB的RAM,这使得它快速减少。即使SQL服务器也是为了将数据保存在RAM中以使其快速访问。

2

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

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

  • 简单地说,什么是慢?一个网页,整个网站?
  • 网络:您的网络基础设施是否最优?
  • DB:数据库是否过载?您的Queres可以优化吗?
  • MVC:你在使用异步吗?会话? web Api呢?
  • 网络:网络性能如何? (CDN,脚本,CSS,请求数,...)

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

在这背后,有ScaleIn VS ScaleOut挑战。我没有说分布式缓存对你来说不是很好的解决方案:我只是说最简单!

0

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

是一个非常功能的.NET应用丰富的分布式缓存,并远远超过应用面料更强大

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

0

在GET操作使用:outputcache/如果您使用保存到数据库

EF => Configuration.AutoDetectChangesEnabled = false; 

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