パフォーマンスの問題があるサーバーで、しばらくの間IIS 7.5のW3C形式のログファイルを調査してきましたが、 MSDNドキュメント とは逆のようです。 =、「時間」フィールドはnot
「協定世界時(UTC)での、要求が発生した時間」
...むしろ、応答の送信が終了した時刻です。
これは、ある程度制御された環境でユーザーからのページリクエストのシーケンスを追跡する場合、ユーザーは次のリクエストを送信するために時間を遡る必要があるためです。そうしないと、ユーザーはページのリクエストを驚くほど速く送信できます。時間がかかるエントリが多いページ。
たとえば(セキュリティと明確さのために、私は編集、省略、省略しています):
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip sc-status sc-substatus sc-win32-status time-taken
2012-11-28 22:25:17 192.168.0.21 GET /Main.aspx - 80 AWalker 192.168.0.100 200 0 0 764
2012-11-28 22:25:26 192.168.0.21 POST /Main.aspx - 80 AWalker 192.168.0.100 200 0 0 109
2012-11-28 22:25:56 192.168.0.21 GET /_Start.aspx - 80 AWalker 192.168.0.100 302 0 0 28782
2012-11-28 22:26:33 192.168.0.21 GET /Action.aspx - 80 AWalker 192.168.0.100 200 0 0 38032
2012-11-28 22:26:46 192.168.0.21 POST /Action.aspx - 80 AWalker 192.168.0.100 200 0 0 124
2012-11-28 22:27:39 192.168.0.21 GET /Information.aspx - 80 AWalker 192.168.0.100 200 0 0 52509
2012-11-28 22:27:52 192.168.0.21 POST /Information.aspx - 80 AWalker 192.168.0.100 200 0 0 140
「time」を「requestreceived」(開始または終了、ただし応答が始まる前)と解釈すると、これは間違っているように見えます。これが私が意味することです:
この種のパターンは、ログで何度も繰り返されます。
逆に、「時間」フィールドを「応答が終了した」という意味に解釈すると、次のようになります。
「時間」フィールドが要求の開始ではなく応答の終了を表すことが私にとってより理にかなっているもう1つの理由は、次のとおりです。
ログエントリは、「時間」フィールドの昇順(時系列)で物理的に記録されますが、常に「所要時間」フィールドが含まれます。これは、後でしか知ることができませんでした。応答は最終的に配信されました。
それで、それはどちらの方法ですか?ドキュメントは間違っていますか?
このページ: http://blogs.msdn.com/b/mike/archive/2008/11/13/time-vs-time-taken-fields-in-iis-logging.aspx
それは言う:
時間フィールドは非常に単純です。ログエントリがいつ作成されたかを指定します。一部の要求/応答シナリオではバッファリングが発生する可能性があるため、これはログエントリが実際にログに書き込まれるときと常に同じであるとは限らないことに注意してください。
したがって、この時間はリクエストが終了した時間に最も近いと考えるのは正しいことです。その同じページは明確にするために続きます:
リクエストのおおよその開始時間を計算する場合は、Time値からTime-Taken値を減算します。