0

我在Windows Server 2008 R2服务器上的IIS7下部署了一个MVC2应用程序,该服务器具有足够的马力。它连接到SQL Server 2008数据库,并且应用程序性能比在开发人员工作站上的调试器中运行(连接到相同的SQL Server数据库)慢得多。我已经检查过网络连接,事件日志中没有任何内容表明Windows有问题。我还在数据库服务器上运行了Profiler,查询速度很快。Windows Server 2008 R2上的MVC2性能IIS7

任何帮助诊断此性能问题,将不胜感激。我甚至建立了一个新的2008 R2服务器来测试它,希望它是服务器本身,但性能是一样的。

感谢

编辑1:

IIS运行Windows Server 2008 R2标准版,32GB的RAM戴尔R710服务器上运行。 SQL Server 2008托管在运行Server 2008 R2 Standard,12GB RAM的单独R710上。最初,我让IIS在虚拟机上运行,​​但是我将它移到了物理机器上,以查看虚拟机是否会导致性能下降。两人的表现都一样,所以看起来不是一个因素。

编辑2:

似乎打开到数据库的连接与存储过程也采取相当多的时间的随后的烧制的瓶颈的一部分:

- 开放数据库连接:5秒(后续连接被缓存,以便它们不要求5秒)

- 第一存储过程:< 1秒

-Secon d SPROC:5秒

- 第三存储过程:< 1秒

- 第四存储过程:< 1秒

-Fifth SPROC:6秒

+1

同一个盒子上的IIS和SQL?虚拟化? – gbn 2011-04-26 19:35:06

+0

不,运行Windows Server 2008 R2 Standard,32GB RAM的物理Dell R710服务器上的IIS。数据库在运行Server 2008 R2 Standard,12GB RAM的独立R710上运行。 – JohnyD 2011-04-27 11:00:55

回答

2

首先,Windows Server 2008的R2具有IIS 7.5 ,而不是IIS7。可能没关系。但是,它是一个不同的版本。

其次,你需要找出瓶颈在哪里。尝试删除查询并仅使用虚拟数据。它仍然很慢吗?如果没有,那么它与数据访问无关。如果是这样,那么你知道这是一个数据访问问题。

+0

我不认为它是数据访问。我这样说是因为当我在我的本地工作站(Win7 64位)的调试器中运行应用程序时,连接到与上述完全相同的数据库时......它运行速度很快。它在十分之一秒内返回所有数据(几个呼叫)。在Server 2008上托管(调用同一个数据库服务器)时,大约需要10秒钟......每次调用之间都会暂停。我刚刚检查并且Win7框也运行IIS 7.5,与Server 2008的版本相同。 – JohnyD 2011-04-27 11:09:46

+0

@JohnyD - 这不会改变您必须找到瓶颈的事实。做到这一点的最简单方法(如果您没有托管代码分析器)就是将问题解决出来,直到问题消失。 – 2011-04-27 21:15:24

+0

看起来打开到数据库的连接是存储过程随后触发的瓶颈的一部分,也需要相当长的时间: - 打开数据库连接:5秒(随后的连接被缓存,因此它们不需要5秒) - 第一存储过程:<1秒 -Second SPROC:5秒 - 第三存储过程:<1秒 - 第四存储过程:<1秒 -Fifth SPROC:6秒 – JohnyD 2011-04-29 00:43:37

1

Here are slides从介绍有关优化ASP.NET MVC应用程序。他们能够将应用的性能从8 req/sec提高到400 req/sec。

他们在幻灯片中提到他们如何描述它并确定瓶颈(查询编译,RenderPartial的多次调用,URL生成等),并在演示结束时给出一些提示。

+1

是的,我不会在这方面放太多信任 - 他们在做基准测试时没有使用发布模式 - doh!这也是一个老版本。这更可能是一个数据库问题。 – UpTheCreek 2011-04-27 05:44:09

相关问题