【发布时间】:2012-11-15 06:59:15
【问题描述】:
我有一个 MVC 4 (Razor) 网站,并且我为会话和 outputCache 提供程序启用了 Azure 缓存(预览版)(共存)。由于我启用了它,每个 Web 请求都会导致 CPU 大幅飙升,并在调试时导致 3-5 秒的页面响应时间。
我已将问题缩小到 outputCache 提供程序。如果我在 web.config 中禁用它,该站点运行良好。没有 CPU 峰值。我还没有使用页面输出缓存......所以不应该发生读/写。会话提供程序通过 Azure 缓存(预览版)运行良好。下面是我的 outputCache 配置。如果我禁用它,该站点将在没有 CPU 峰值的情况下运行。有什么想法吗?
<caching>
<outputCache defaultProvider="DistributedCache">
<providers>
<add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" />
</providers>
</outputCache>
</caching>
【问题讨论】:
-
我也在评估 Azure 缓存,即使我只是考虑了专用角色选项。当您调试它时,我假设您在 Development Fabric 上本地运行解决方案,对吗?您是否运行 Web 角色的多个实例并在实例之间配置了高可用性(备份副本 = 1)?
-
您是否将缓存用于其他用途?我很想知道您的 Web.Config 文件中的
dataCacheClients配置以及 WebRole 属性页面的“缓存”选项卡上的缓存设置。 -
我已经格式化了我的机器,安装了 VS 2012 并重新安装了 Azure SDK,重新下载了我的 NuGet 包,但问题仍然存在。每当我为每个 Web 请求打开 outputCache 提供程序时,都会出现大量 CPU 峰值。
-
根据要求,这里是 dataCacheClients 部分:@DavideB 我在 Web 服务器之间运行具有 30% 缓存大小的同位角色。问题是在开发结构上进行本地调试时。
标签: azure