在ASP.NET IIS托管的WCF应用程序中偶尔调用需要5秒

时间:2011-10-13 18:04:38

标签: c# wcf performance iis-6 windows-server-2003

我们的应用程序响应时间很短,至关重要。 一切正常,除了每周几次,其中1次随机通话需要大约5000ms完成,而其他通话需要200ms。在几秒钟之前进行呼叫,因此它与正在卸载的dll无关。时间是随机的,没有涉及App池回收。

IIS时间:5000毫秒

ASP.NET \请求执行时间:5000毫秒

我们在代码中的计数器:200ms(在开始时和执行时记录)

似乎在我们的代码被击中之前,电话被卡住了。我们监控了perf计数器,当这种情况发生时,呼叫没有排队,没有等待时间。

IIS配置已使用自定义processModel值进行优化(如http://support.microsoft.com/kb/821268中所述),以获得更好的吞吐量。

我们监控了磁盘,网络,内存和CPU,一切看起来还不错。

什么可能导致这样的峰值(可能是IIS线程分配?) 明显的ASP.NET,.NET CLR,系统,线程旁边的其他什么方法可以帮助我们?

配置: Windows 2003 SP2(托管在VMWare ESX上)

IIS 6

.NET Framework 3.5

2 个答案:

答案 0 :(得分:0)

我将从这篇文章开始WCF Request Throttling and Server Scalability

特别是 Throttling Tuning 部分:

  

为了在高端服务器上实现高吞吐量,您会这样做   需要进行以下限制调整:

     
      
  • 增加ASP.NET线程限制以允许更多并发工作线程处理请求
  •   
  • 增加WCF服务限制以允许更多并发请求
  •   

答案 1 :(得分:0)

您是否尝试过跟踪服务和客户端,以确定是否存在安全性的谈判或类似的事情会减慢您的速度?

请参阅:SVC Trace viewer(msdn)