IIS6上的ASP.NET MVC在http管道中出现奇怪的延迟

时间:2010-08-09 16:09:49

标签: asp.net-mvc performance iis-6

我有一个在IIS6上运行的ASP.NET MVC应用程序,启用了通配符映射。在执行一些负载测试后,我深入研究了日志文件,重点关注慢速请求。我有一个来自负载测试应用程序的日志文件,IIS日志文件以及我为此目的开发的IHttpModule日志文件,它记录了Application.BeginRequestApplication.EndRequest的时间。

当我比较IIS日志文件中慢速请求的数据和模块的日志文件时,我发现了一些奇怪的行为。

var request_processing_start = iis_log_file.time - iis_log_file.taken
var aspnet_processing_start = my_module_log_file.begin_request_called
var aspnet_processing_end = my_module_log_file.end_request_called
var request_processing_end = iis_log_file.time

对于所有请求,aspnet_processing_endrequest_processing_end的值匹配非常接近(差异不超过几毫秒)。但是,有些请求的时间跨度为request_processing_startaspnet_processing_start之间的最长30秒。 这种滞后的原因是什么,我该如何预防呢?


我已完成负载测试的更多细节:

  • 请求数量:长时间平均每秒2次,峰值不超过每秒20次。 (这真的很低,我们不能怪通配符映射)
  • 处理器使用情况:扁线低于5%(我们不能怪cpu电量不足)
  • 可用内存:超过1GB(内存也不存在问题)。
  • 我描述的延迟仅在服务器负载时发生。当负载测试应用程序未运行时,无法再现。

0 个答案:

没有答案