2011-10-29 49 views
0

我们已部署到正在执行一个严重新建的Windows 2008 R2网络版服务器中的MVC 3应用程序。ASP.Net MVC可怜的生产性能

此应用程序已经通过开发,质量保证和用户验收测试周期在相同的操作系统(不同的盒子)上,没有性能问题。

我们可以看到服务器的唯一区别在于它位于DMZ中,因此配置了两个网络适配器,一个用于Internet,一个用于穿透防火墙。

我们已将各种日志记录放入应用程序,并确认直到'返回ActionResult'一切正常工作(即〜500毫秒)。然后需要15秒来渲染页面。

我们已经尝试在配置文件中打开debug = false,我不确定在这里寻找什么,看起来像是一个环境问题。

任何建议吗?我正在调查线程池大小是否会导致问题。

此外,如果它有助于页面使用多个部分视图,我已阅读其他有问题的人。

谢谢, 马特

+1

你推迟执行查询或者是你要确保你的行动返回前查询是否完成?即使您的操作正在返回,如果您的查询执行泄漏到您的视图中,您仍然可能会由于数据库而遇到延迟。 – tvanfosson

+0

您是否对数据库运行了一个分析器来查看生成的查询以及它如何管理? – Oded

回答

1

由于应用程序在其他环境中执行好,我建议你调查以下:

  1. 数据库 - 你对不同的数据库上运行?查询执行多长时间?如果您拥有非优化的数据库,其中有数百条记录用于生产,只有少数记录在测试中,您可以尽快找到性能问题。

  2. 网络 - 网络盒和数据库之间的延迟是多少?如果您仅因网络而导致每次数据库查询的时间超过100毫秒,而您的网页触发50次查询则会丢失5秒。我见过配置不佳的路由器/负载均衡器。

尝试,以找出你在浪费那么多时间剖析系统(数据库,网络,网箱)的每个组件。尝试http://code.google.com/p/mvc-mini-profiler/

PS。你的产品必须有debug=false

+0

谢谢Jakub,我们排除了网络或数据库的任何问题,这是发生在个人服务器本身上的事情。目前我们正在将Kerberos身份验证超时视为一个可能的问题。 –