2

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

4

4 回答 4

2

如果您有多个服务器运行,那么 Appfabric 类型的缓存系统将有很大帮助。如果要用于单个服务器,构建 asp.net 缓存系统也很好。最重要的因素之一是您将拥有的 RAM 大小。如果要添加越来越多的 RAM,您的网站将会越来越快。连memcache也可以用.Net有没有memcache的端口?. 即使您看到类似堆栈溢出的网站,它们在数据库服务器上也有大约 380 GB 的 RAM,这使得它变得更快。甚至 SQL Server 也旨在将数据保存在 RAM 中以使其快速访问。

于 2013-04-16T05:26:50.227 回答
2

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

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

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

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

这背后,是 ScaleIn Vs ScaleOut 的挑战。我并不是说分布式缓存不是你的好解决方案:我只是说做最简单的!

于 2013-04-17T06:49:20.973 回答
0

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

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

比 App Fabric。

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

于 2013-05-20T11:31:19.847 回答
0

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

EF => Configuration.AutoDetectChangesEnabled = false;

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

于 2016-09-14T10:34:01.940 回答