David
Wed Jan 16 19:24:23 CST 2008
At this point, either you're missing traces (is this obtained by
logparser script -- what's the raw output), or it's a networking
problem -- because IIS shows no evidence of processing within those
nine seconds... and that's not an IIS issue since the handler has
already executed.
The nine seconds includes time spent over the network to the client
(time-taken). Virtual Machines are known to have random hiccups on
network bandwidth/latency.
//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//
On Jan 16, 5:08=A0pm, Waleed ninua com> <waleed <atdot> wrote:
> Thanks David. More details:
>
> > Also, the ISAPI Filter is rewriting the Host header in
> > SF_NOTIFY_PREPROC_HEADER, which is useless on IIS because by the time
> > the filter executes, IIS has already decided (based on the prior Host
> > header) which IIS website handles the response. Thus, this only
> > changes the value of the Host header and not the associated metadata
> > that governs how the request will be processed.
>
> Yes, I'm aware of that. I'm changing the host header for my own need. I ha=
ve
> URL rewriting rules (using Helicon) that apply to two domains and go by th=
e
> host header value, and I don't want to repeate the rules for each domain.
>
> > Furthermore, I believe your ISAPI Filter is preventing the kernel
> > response cache from ever succeeding (i.e. it turns off the kernel
> > response cache), thus your static file performance has already taken a
> > 10x hit from the optimum on your machine. There is a property a filter
> > can set to tell IIS it is "cache friendly", though IIS will determine
> > if a filter is truly "cache friendly" and act accordingly.
>
> Interesting. I'll look into that further. But this doesn't cause such long=
> delays, does it?
>
> > Please make sure to show me the correct traces to make progress.
>
> I changed the logman config file to use the one you suggested. Here is a n=
ew
> trace that I caught in the last hour to access a small image and it took 9=
> seconds. =A0Thank you so much for your help so far. I'm grateful.
>
> Request n.406:
http://domain1.com:80/community/themes/domain1/CommunityLogo=
.png
> {00000000-0000-0000-1d10-00604000001d} 2008-0-17 0:19:26
>
> =A0 IISGeneral: GENERAL_REQUEST_START - IIS starts processing a new reques=
t
> =A0 =A0 SiteId: 439452719
> =A0 =A0 AppPoolId: DefaultAppPool
> =A0 =A0 ConnId: 1073745948
> =A0 =A0 RawConnId: 0
> =A0 =A0 RequestURL:
http://domain1.com:80/community/themes/domain1/Communit=
yLogo.png
> =A0 =A0 RequestVerb: GET
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_START - W3 filter starts
> =A0 =A0 FilterName: C:\Program Files\Helicon\ISAPI_Rewrite\ISAPI_Rewrite.d=
ll
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_PREPROC_HEADERS_START - Filter starts PREPROC_HEADER=
S
> notification
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_SET_REQ_HEADER - IIS filter SET_REQ_HEADER
> =A0 =A0 HeaderName: X-Rewrite-URL:
> =A0 =A0 HeaderValue: /community/themes/domain1/CommunityLogo.png
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_SET_REQ_HEADER - IIS filter SET_REQ_HEADER
> =A0 =A0 HeaderName: host:
> =A0 =A0 HeaderValue: domain2.com
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_SET_REQ_HEADER - IIS filter SET_REQ_HEADER
> =A0 =A0 HeaderName: URL
> =A0 =A0 HeaderValue: /community/themes/domain1/CommunityLogo.png
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_PREPROC_HEADERS_END - Filter ends PREPROC_HEADERS
> notification
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_END - W3 filter ends
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_START - W3 filter starts
> =A0 =A0 FilterName:
> C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_PREPROC_HEADERS_START - Filter starts PREPROC_HEADER=
S
> notification
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_SET_REQ_HEADER - IIS filter SET_REQ_HEADER
> =A0 =A0 HeaderName: AspFilterSessionId:
> =A0 =A0 HeaderValue:
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_PREPROC_HEADERS_END - Filter ends PREPROC_HEADERS
> notification
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_END - W3 filter ends
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISCache: URL_CACHE_ACCESS_START - IIS starts accessing URL cache to g=
et
> metadata
> =A0 =A0 RequestURL: /community/themes/domain1/CommunityLogo.png
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISGeneral: GENERAL_GET_URL_METADATA - IIS gets URL metadata
> =A0 =A0 PhysicalPath:
> C:\domain2\domain2.com\community\themes\domain1\CommunityLogo.png
> =A0 =A0 AccessPerms: Read+Script
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISCache: URL_CACHE_ACCESS_END - IIS ends accessing URL cache
> =A0 =A0 PhysicalPath:
> C:\domain2\domain2.com\community\themes\domain1\CommunityLogo.png
> =A0 =A0 ErrorCode: 0x00000000
> =A0 =A0 URLInfoFromCache: 0
> =A0 =A0 URLInfoAddedToCache: 0
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_START - W3 filter starts
> =A0 =A0 FilterName:
> C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_URL_MAP_START - IIS starts URL_MAP notification
> =A0 =A0 AccessPerms: 0x00000201
> =A0 =A0 MatchingPath: 18
> =A0 =A0 MatchingURL: 0
> =A0 =A0 ScriptMapEntry:
> =A0 =A0 OrigURL: /community/themes/domain1/CommunityLogo.png
> =A0 =A0 OrigPath:
> C:\domain2\domain2.com\community\themes\domain1\CommunityLogo.png
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_URL_MAP_END - IIS ends URL_MAP notification
> =A0 =A0 AccessPerms: 0x00000201
> =A0 =A0 FinalURL: /community/themes/domain1/CommunityLogo.png
> =A0 =A0 FinalPath:
> C:\domain2\domain2.com\community\themes\domain1\CommunityLogo.png
> =A0 =A0 MatchingPath: 18
> =A0 =A0 MatchingURL: 0
> =A0 =A0 ScriptMapEntry:
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISFilter: FILTER_END - W3 filter ends
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISAuthentication: AUTH_START - IIS authentication starts
> =A0 =A0 AuthTypeSupported: Anonymous+NT
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISAuthentication: AUTH_REQUEST_AUTH_TYPE - Authentication type in the=
> request
> =A0 =A0 RequestAuthType: Anonymous
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISAuthentication: AUTH_SUCCEEDED - IIS authentication succeeds
> =A0 =A0 NTLMUsed: 0
> =A0 =A0 AuthType: Anonymous
> =A0 =A0 RemoteUserName:
> =A0 =A0 AuthUserName:
> =A0 =A0 TokenImpersonationLevel: 0x00000002
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISAuthentication: AUTH_END - IIS authentication ends
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISGeneral: GENERAL_STATIC_FILE_HANDLER - IIS processes a static file
> request
> =A0 =A0 FileName:
> C:\domain2\domain2.com\community\themes\domain1\CommunityLogo.png
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISCache: FILE_CACHE_ACCESS_START - IIS starts accessing file cache
> =A0 =A0 FileName:
> C:\domain2\domain2.com\community\themes\domain1\CommunityLogo.png
> =A0 =A0 UserName: IUSR_TEMPLATE
> =A0 =A0 DomainName: DOMAIN2COM
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISCache: FILE_CACHE_ACCESS_END - IIS ends accessing file cache
> =A0 =A0 ErrorCode: 0x00000000
> =A0 =A0 Successful: 1
> =A0 =A0 FileFromCache: 0
> =A0 =A0 FileAddedToCache: 0
> =A0 =A0 FileDirmoned: 1
> =A0 =A0 LastModCheckErrorIgnored: 0
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISCache: HTTPSYS_CACHEABLE - IIS decides if the request is HTTP.SYS
> cacheable
> =A0 =A0 HttpsysCacheable: 0
> =A0 =A0 Reason: URL_CHANGE_BY_FILTER
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:26.515.556800
>
> =A0 IISGeneral: GENERAL_REQUEST_END - IIS ends processing a request
> =A0 =A0 HttpStatus: 200
> =A0 =A0 HttpSubStatus: 0
> =A0 =A0 BytesSent: 8101
> =A0 =A0 BytesReceived: 646
> =A0 =A0 ContextIDSeq: 406
> =A0 =A0 Timestamp: 00:19:35.979.164800
>
> =A0Total time: 9000 msecs