Windows Server 2008 R2 和 IIS7.5 上的 MVC2 应用程序性能

Windows Server 2008 R2 和 IIS7.5 上的 MVC2 应用程序性能

我最初在 StackOverflow 上发布了此信息,但我觉得问题出在硬件/操作系统配置上。我希望这里有人有过类似的经历,可以提供一些建议。

我已经将 MVC2 应用程序部署到在 Windows Server 2008 R2 Standard 服务器(物理机;Dell R710,内存充足)上运行的 IIS7.5。它连接到 SQL Server 2008 数据库(也是物理机;Windows Server 2008 R2 Standard;Dell R710,内存充足),应用程序性能极差。它相当简单,只调用了几个存储过程。

开发人员已在自己的工作站(Windows 7,64 位;IIS7.5)上的调试器中测试了连接到同一数据库后端的应用程序。它尖叫着。眨眼间加载完成。在 Server 2008 R2 下运行大约需要 10-15 秒,每次调用 DB 之间都会暂停。我在 SQL Server Profiler 中运行测试,SP 运行速度很快。迁移到 Server 2008 R2 时,性能问题就会显现出来。

到目前为止我已经尝试过:

  • 禁用防火墙
  • 重建应用程序以适应兼容模式(32 位或 64 位)
  • 专门为 64 位重建了应用程序
  • 将服务器配置为 32 位模式工作进程
  • 已禁用 tcp-chimney 卸载
  • 无奈之下重建了服务器

这些对性能都没有明显的影响。

如能提供任何有关诊断此性能问题的帮助,我们将不胜感激,谢谢。

更新 1:

看起来,打开与数据库的连接是瓶颈的一部分,随后启动存储过程也花费了相当长的时间:

-打开数据库连接:5 秒(后续连接被缓存,因此不需要 5 秒)

-第一个存储过程:< 1 秒

-第二个存储过程:5秒

-第三个存储过程:< 1 秒

-第四个存储过程:< 1 秒

-第五个存储过程:6 秒

答案1

最常回答的答案是:

MVC 在服务器上应该很快。

身份验证有什么不同吗?客户端 -> IIS 还是 IIS -> SQL?如何设置?

您确定该应用程序是在 IIS 7.5 下运行,而不是在 IIS Express 或 ASP.Net 开发服务器下运行吗?

我问这个问题的原因是 IIS Express 和 ASP.Net 开发服务器以用户 ID 运行 - 从那里可能不明显存在身份验证问题(尤其是在本地运行时)。

从控制台运行时它在服务器上的表现是否很差(如果这是一个选项 - 我通常不会禁用环回检查等只是为了让它从那里工作)?

答案2

我会用查询快递,(单个可执行文件,无需安装)在 Web 服务器上。使用您在 SQL 配置文件中记录的 SQL 查询以及与您的 MVC 站点相同的 SQL 身份验证。

这使您可以测试原始 SQL 连接是否存在问题,然后从那里开始解决问题。

相关内容