我在具有足够功能的Windows Server 2008 R2服务器上的IIS7下部署MVC2应用程序。它连接到SQL Server 2008数据库,并且应用程序性能比在开发人员工作站(连接到同一SQL Server数据库)上的调试器中运行时要慢得多。我已经检查过网络连接,事件日志中没有任何内容表明Windows存在问题。我还在数据库服务器上运行Profiler,并且查询正在快速启动。
对于诊断此性能问题的任何帮助将不胜感激。我甚至构建了一个新的2008 R2服务器来测试它,希望它是服务器本身,但性能是相同的。
由于
修改1:
IIS运行在运行Windows Server 2008 R2 Standard,32GB内存的Dell R710服务器上。 SQL Server 2008托管在运行Server 2008 R2 Standard,12GB内存的单独R710上。最初我在VM上运行IIS,但我将其移动到物理机,以查看性能下降是否归因于VM。我在两者上都表现出相同的表现,所以看起来它不是一个因素。
编辑2:
似乎打开与数据库的连接是瓶颈的一部分,随后的存储过程的触发也需要相当长的时间:
- 打开数据库连接:5秒(后续连接被缓存,因此它们不需要5秒)
-First sproc:< 1秒
-Second sproc:5秒
-Third sproc:< 1秒
-Fourth sproc:< 1秒
-Fifth sproc:6秒
答案 0 :(得分:2)
首先,Windows Server 2008 R2具有IIS 7.5,而不是IIS7。可能没关系。但是,它是一个不同的版本。
其次,您需要找出瓶颈所在。尝试删除查询,只使用虚拟数据。它还慢吗?如果没有,那么它与数据访问无关......如果是,那么你知道这是一个数据访问问题。
答案 1 :(得分:1)
Here are slides来自关于优化ASP.NET MVC应用程序的演示文稿。他们能够将应用程序的性能从8 req / sec提高到400 req / sec。
他们在幻灯片中提到了他们如何分析它并确定瓶颈(查询编译,许多调用RenderPartial,url生成等)并在演示结束时给出一些提示。