我们遇到了一些奇怪的性能问题,我希望有人能指出我们正确的方向。我们的场景是一个ASP.NET MVC C#
使用EF4 POCO
in的网站IIS 7
(高度规范的服务器,专用于此应用程序)。
显然它在 application_startup 上的速度很慢,这是意料之中的,但是一旦加载,您就可以浏览网站,一切都很好,页面加载速度快 0.5 毫秒(我们正在使用Mini-Profiler
)。现在,如果您停止使用该网站 5 到 10 分钟(我们将应用程序池回收设置为 2 小时并且我们正在记录,所以我们知道它没有被回收)那么第一页加载速度非常慢,10 - 15 秒,但随后您可以再次导航而不会出现问题(0.5 毫秒)。
这并不是SQL queries
很慢,因为所有查询在第一页命中后似乎都可以正常工作,即使它们尚未运行,因此也不会在任何地方缓存。
我们已经进行了大量的测试,我无法弄清楚这一点。到目前为止,我尝试过的主要事情是预生成 EF 视图,但这并没有帮助。
在 Sql Server Profiler 中没有任何活动并且没有站点交互的情况下查看 5 分钟后,似乎Sql Server Profiler
需要或需要 30 秒后,应用程序会出现几个“审核注销”条目,一旦发生这种情况,它似乎需要 10 - 15秒刷新应用程序。是否有空闲超时Sql Server
?