升级到 Windows Server 2008、IIS 7.5 后,ASMX Web 服务的首次访问速度变慢

升级到 Windows Server 2008、IIS 7.5 后,ASMX Web 服务的首次访问速度变慢

我们最近构建了一台新的生产服务器,用于运行 ASP.NET 4.0 业务应用程序。新服务器的规格为 Windows Server 2008 R2、2 核 Xenon、IIS 7.5、2GB RAM(即将升级为 4GB)。在新服务器之前,我们一直在 Windows Server 2003、单核、IIS 6、4GB RAM 上运行/测试应用程序。

我们的应用程序使用 ASMX Web 服务通过 LDAP 验证针对 Active Directory 的登录。

我们立即注意到,从新服务器访问 Web 服务时,响应时间显著增加,但仅限于“首次访问”。奇怪的是,99.9% 的时间里,这种“首次访问”的响应时间为 15 秒(确切地说是在 15000 到 15999 毫秒之间)。后续访问导致所有用户的响应时间都很正常(<100 毫秒 - 300 毫秒)。但是,等待时间超过 2-3 分钟将导致这种“首次访问”行为再次发生。

在旧服务器上,对相同服务的响应时间从未超过 300 毫秒......即使重新启动 IIS6 之后也是如此。

新旧服务器的跟踪路由完全相同。Ping 响应时间也完全相同。

经过大量测试后,唯一可靠的重现方法(从而定义“首次命中”)是:

a) 等待 2-3 分钟,或

b)回收应用程序池,或者

c)重新启动IIS

该应用程序在其自己的应用程序池下运行,使用.NET 4.0 Framework。

以下是应用程序和 IIS 的当前状态:

  • 所有池的所有回收均已关闭(空闲超时和固定间隔)
  • Web.config 中没有调试引用
  • 应用程序已预编译(通过 Visual Studio 发布)
  • 托管管道 = 集成
  • 身份 = NetworkService
  • 在 64 位模式下运行(更改为 32 位模式无效果)

我一开始以为这是一个回收问题,因为我看到过很多与此相关的帖子。然而,它无法解释为什么在等待 2-3 分钟后就会出现“首次命中”行为。

我唯一没有尝试的是 IIS Warm-Up。这是因为 a) 我没有安装它的权限,并且 b) 在我看来,“首次访问”是指实际的登录页面,而不是服务(除非我记错了)。无论是否是“首次访问”,登录页面的加载时间都在 300 毫秒以内。


还有一点需要注意...我们实际上有两台新的生产服务器,它们是相同的。我们的另一个应用程序在两台服务器上使用负载平衡。这里讨论的应用程序仅位于其中一台服务器上,并且没有进行负载平衡。这可能与它有关吗?

希望您能幫忙!

答案1

所以我们的 IT 人员最终解决了这个问题。

虽然他们不确定实际问题是什么,但他们认为这是因为我们的域名有两个与之关联的 IP 地址(用于负载平衡)。自从配置并启动 Round Robin(VMWare)以来,问题似乎已经自行解决。

相关内容