我有一个在IIS6上运行的ASP.NET MVC应用程序,启用了通配符映射。在执行一些负载测试后,我深入研究了日志文件,重点关注慢速请求。我有一个来自负载测试应用程序的日志文件,IIS日志文件以及我为此目的开发的IHttpModule
日志文件,它记录了Application.BeginRequest
和Application.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_end
和request_processing_end
的值匹配非常接近(差异不超过几毫秒)。但是,有些请求的时间跨度为request_processing_start
和aspnet_processing_start
之间的最长30秒。 这种滞后的原因是什么,我该如何预防呢?
我已完成负载测试的更多细节: