首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么outputCache配置部分指向Azure共享缓存会减慢每个请求的速度?

为什么outputCache配置部分指向Azure共享缓存会减慢每个请求的速度?
EN

Stack Overflow用户
提问于 2012-11-13 15:20:38
回答 2查看 1K关注 0票数 4

我的问题类似于这一个,但我的问题是Windows共享缓存--而不是更新的Windows缓存。

这真的是个奇怪的问题。我已经设置了一个共享的天蓝色缓存,并在一个托管的云服务上工作。该应用程序同时用于sessionStatecaching/outputCache。该应用程序完全没有延迟问题。它与共享缓存一样部署到北中美。

我还有第二个托管服务,它也部署在美国北部。我已经将第二个应用程序配置为使用相同的共享缓存。奇怪的是:当我将web.config中的web.config部分配置为指向共享缓存时,每一个(MVC4) web请求都会减慢到大约5-6秒。当我注释掉这个web.config部分时,web请求的速度要快得多(大约100毫秒)。

缓存连接本身似乎不存在延迟问题,因为我仍然在为sessionState使用相同的共享缓存,而且速度很快。同样值得注意的是,没有一个MVC4操作使用OutputCacheAttribute。通过将outputCache部分添加到web.config并重新部署,可以简单地再现延迟。

这两个应用程序都位于相同的数据中心区域,使用相同的vm大小、实例和osFamilies。我认为他们之间唯一的区别是第一个(没有延迟问题)是MVC3应用程序,而第二个是MVC4应用程序。

为什么简单地添加指向Windows共享缓存的缓存/outputCache配置部分会减慢每个MVC4请求的速度?

更新1:

我现在可以复制这个问题,而不用部署到azure。我将本地VS / IIS安装设置为对会话和outputCache使用共享缓存。在更改这个web.config设置之前,我一直得到次秒响应:

代码语言:javascript
复制
<compilation debug="false" ... <!-- changed this from true to false

当关闭system.web部分中的调试钩子时,我开始获得5-6秒的响应时间(再现)。这可能是MVC4中捆绑和缩小特性的问题吗?非常奇怪的是,关闭调试编译会增加响应延迟10倍…

更新2:

MiniProfiler告诉我,是的,超过4秒的延迟来自MVC _Layout.cshtml中的@Scripts.Render(“~/bundle/mybundle”)之一。看来,outputCache设置在web.config中正在影响捆绑脚本的发布模式呈现。但是为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-14 20:52:09

优化框架目前不支持非默认的输出缓存提供程序,因为在过去,这会导致异常,因此在这些情况下,服务器缓存被禁用,导致所看到的高开销。我认为现在我们已经转向了VirtualPathProviders,我们在非默认提供程序中遇到的问题可能已经解决了,我们现在可能能够支持这个场景了。

我在codeplex站点上提交了一个工作项来跟踪以下内容:发行链接

更新:这应该在https://nuget.org/packages/Microsoft.AspNet.Web.Optimization/1.1.0-Beta1中修复

票数 3
EN

Stack Overflow用户

发布于 2012-11-13 22:32:11

我可以证实你的发现。如果我禁用所有的CSS/脚本捆绑/缩小,我不会体验CPU尖峰和缓慢。显然,这是由于捆绑和/或缩小。

这就是我在我的_Layout.cshtml上拥有的。删除它=没有CPU问题。包括它将导致CPU峰值/慢度。

代码语言:javascript
复制
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/kendoui")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13363434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档