我有一个 asp.net 3.5 web 应用程序,在 Windows2003 IIS6 上运行良好。我将完全相同的应用程序发布到速度更快的机器 (i5,8Gram) 上的 IIS7.5 (Win2008R2),但速度明显变慢。每页 5-6 秒 vs. 每页 1-2 秒。在此期间,任务管理器 CPU 始终低于 10%。两者都连接到另一台机器上的相同数据库。基准测试与任何其他客户端浏览器或机器一致。我在两者上都有连接池,都在两者上进行了压缩。相同的网络子网。表单身份验证(尚未使用 SSL)。您能否给我一些步骤,告诉我如何排除插入延迟的位置或我可能忽略的 IIS7 中的设置。只使用默认值。
每个盒子上只有 1 个网站。我理解 IIS 中定义的应用程序的角色已经改变。IIS 中没有定义特殊的应用程序。
答案1
每页 5-6 秒 vs. 每页 1-2 秒。在此期间,任务管理器 CPU 的使用率始终低于 10%。
好的,10% 意味着可能一个核心全速运行,其他核心不忙。除去明显的问题(糟糕的配置应用程序池只针对一个核心),这表明存在一个非常糟糕的编程问题。附加一个分析器并找出实际花费时间的地方。
每页 5-6 秒太糟糕了。不过,这里有个坏消息:在低负载下,99% 的情况下,每页 1-2 秒的性能都达到了最高水平。页面处理时间不可能超过 50... 毫秒。我更关心的是 1-2 秒的启动时间 - 这表明存在一个从未修复过的真正编程问题。即使在您的旧服务器上,您的系统也很慢。慢得要命。
首先,使用分析器来查看你的时间都花在了哪里。
两者都附加到另一个盒子上的同一个数据库。
是不是你的数据库服务器超载了?你的 SQL 调用耗费的时间是正常时间的 10 倍?
答案2
使能够IIS 中的失败请求跟踪。这将帮助您了解通话期间的时间都花在了哪里。配置完成后,重现性能问题,然后打开生成的 .xml 文件查看结果(确保 .xsl 文件也在那里)。
编辑:我在 stackoverflow 上针对另一个问题发布了一些分步指南这里。