IIS 7 HTTP ログ記録の時間単位フィールドの説明

この記事では、Microsoft インターネット インフォメーション サービス (IIS) Hypertext Transfer Protocol (HTTP) ログ記録の時間の取られたフィールドの機能について説明します。

元の製品バージョン:インターネット インフォメーション サービス 7.0 以降のバージョン
元の KB 番号: 944884

[時間の取得] フィールド

既定では、IIS は W3C 拡張ログ ファイル形式を使用して HTTP サイト アクティビティをログに記録します。 IIS マネージャーを使用して、ログ ファイルに含めるフィールドを選択できます。 これらのフィールドの 1 つは、時間の取られたフィールドです。

取得時間フィールドは、要求の処理にかかる時間を測定します。 クライアント要求のタイム スタンプは、HTTP.sys が要求の最初のバイトを受け取ったときに初期化されます。 HTTP.sys は、IIS アクティビティの HTTP ログ記録を担当するカーネル モード コンポーネントです。 クライアント要求のタイム スタンプは、HTTP.sys 要求の解析を開始する前に初期化されます。 最後の IIS 応答送信完了が発生すると、クライアント要求のタイム スタンプが停止します。

IIS 7.0 以降の時間フィールドには、ネットワーク時間が含まれます。 HTTP.sys が時間単位のフィールドに値を記録する前に、HTTP.sys は通常、クライアントが最後の応答パケット送信操作を確認するまで待機するか、クライアントが基になる TCP 接続をリセットするまで待機 HTTP.sys 待機します。 そのため、低速のネットワーク接続を介して大きな応答または大きな応答がクライアントに送信される場合、時間のかかったフィールドの値が予想以上になる可能性があります。

注:

次のいずれかの条件が満たされている場合、time-taken フィールドの値にはネットワーク時間は含まれません。

  • 応答サイズは 2 KB 以下で、応答サイズはメモリからのサイズです。
  • TCP バッファリングが使用されます。 HTTPAPI.dll を使用するアプリケーションでは、フラグをHTTP_SEND_RESPONSE_FLAG_BUFFER_DATA設定して Windows で TCP バッファリングを有効にすることができます。 これにより、サーバーは、クライアントの対応する受信確認を待機することなく、すべての応答データをクライアントに送信できます。