Freigeben über


Problembehandlung für Cacheelemente in ARR, Version 2.0 oder höher

Gilt für: Internetinformationsdienste

Übersicht

In dieser exemplarischen Vorgehensweise erfahren Sie, wie Sie eine Anforderung nachverfolgen, während sie über ARR durchläuft und an einen server der nächsten Ebene gesendet wird, und sehen Sie sich die Informationen an, die abgerufen werden können, um zu bestimmen, wo die Anforderung gesendet und wo sie bereitgestellt wurde.

In dieser Problembehandlung verwendete Tools

Grundlegendes zur Architektur der Farm

Der erste Schritt besteht darin, sich mit der Architektur der Umgebung vertraut zu machen.

  • ARR-Farmtopologie (Anzahl der Server, Routingkonfiguration, andere Geräte)
  • Aktive URL-Umschreibungsregeln

In dieser exemplarischen Vorgehensweise können Sie die folgende Konfiguration verwenden, um eine Anforderung nachzuverfolgen.

Das Diagramm zeigt einen untergeordneten Knoten, einen übergeordneten Knoten und einen Ursprungsserver mit Pfeilen, um Cachefehler und Anforderungen anzugeben.

Datenträgercachekonfiguration

Der folgende Codeausschnitt zeigt ein lokales Laufwerk mit einer maximalen Größe von 100 GB ist konfiguriert.

<diskCache> 
<driveLocation path="E:\temp$\arrcache" maxUsage="100" />            
</diskCache>

Regeln für globale Cachesteuerelemente

Diese Regel wird für 60 Minuten als Cache definiert, wenn keine Cachesteuerelementdirektive vorhanden ist.

<rule name="ARR_CacheControl_b5aec65d-6327-407f-a28c-b34e48c5cda2" enabled="true" patternSyntax="Wildcard"> 
     <match url="*" />     
       <serverVariables>        
         <set name="ARR_CACHE_CONTROL_OVERRIDE" value="0,max-age=3600" />         
       </serverVariables>
</rule>

Erstellen eines Datensammlungsplans

In diesem Abschnitt werden Sie durch den Ablauf von Cachetreffern geführt, die während der Übertragung durch ARR fehlen, und sie identifizieren alle Tools oder Protokolle, die Sie verwenden können, um die Anforderungen zu untersuchen. In den folgenden Schritten wird der Anforderungsfluss für Inhalte beschrieben, die nicht zuvor unter Verwendung der konfiguration als Referenz und den tools verwendet wurden, die bei jedem Schritt verwendet wurden.

  • Der angeforderte Inhalt wird nicht lokal gefunden (weder im Arbeitsspeicher noch auf dem Datenträger auf dem untergeordneten Knoten).

    • FREB-Protokolle
    • Integrierte IIS-Protokollierung
    • Netzwerkmonitor
  • Die Anforderung wird an den nächsten Cacheknoten in der Hierarchie (übergeordneter Knoten) weitergeleitet.

    • FREB-Protokolle
    • IIS Advanced Logging-Modul
    • Integrierte IIS-Protokollierung
    • Netzwerkmonitor
  • Der angeforderte Inhalt wird nicht im nächsten Cacheknoten der Ebene gefunden (weder im Arbeitsspeicher noch auf dem Datenträger). Wiederholen Sie punkt 2 so oft wie je nach Bedarf basierend auf der Cachehierarchie.

  • Die Anforderung wird an den Ursprungsserver weitergeleitet.

    • FREB-Protokolle
    • Integrierte IIS-Protokollierung
    • Netzwerkmonitor

Sammeln der Daten

Der angeforderte Inhalt wird nicht lokal gefunden (weder im Arbeitsspeicher noch auf dem Datenträger)

Hier können Sie einen Cachetreffer identifizieren oder in den IIS-Protokollen oder FREB-Protokollen verpassen. Die FREB-Protokolle enthalten zusätzliche Details, z. B. wo die Anforderung weitergeleitet wurde, was wichtig ist, wenn mehrere Server auf der Unterebene vorhanden sind.

IIS-Protokolleintrag – Sie finden die folgenden Einträge im Cs-uri-Abfragefeld , das den Cachetreffer oder -miss und die GUID für die Anforderung identifiziert, die verwendet werden kann, um die Anforderung auf Abwärtsservern zu identifizieren.

X-ARR-CACHE-HIT=0
0 =  Cache miss, 1 = Cache hit
X-ARR-LOG-ID=62a3161c-b4f5-408e-9ce7-55d25c018aea
Guid identifying this request. This can be used to track as the request is passed to Parent nodes.

FREB-Protokolleintrag - Der Cachefehler wird durch den Eintrag ARR_DISK_CACHE_GET_FAILEDgefunden.

type Eingabe Details
r ARR_DISK_CACHE_GET_FAILED Warnung FilePath="\?\C:\ARRCache\localhost\iisstart.htm.full", ErrorCode="The system cannot find the file specified. (0x80070002)", IsRangeEntry="false", RangeOffset="0", RangeSegmentSize="0"

Identifizieren Sie den Server, an den die Anforderung weitergeleitet wird. Beobachten Sie die Anforderung, die an den Server W2K8WEBSERVER2gesendet wird, was der nächste Server für die Datenüberprüfung ist.

type Eingabe Details
i ARR_SERVER_ROUTED RoutingReason="LoadBalancing", Server="W2K8WEBSERVER2", State="Active", TotalRequests="8", FailedRequests="0", CurrentRequests="1", BytesSent="1127", BytesReceived="6441379", ResponseTime="31351"

Die folgenden Header werden der Anforderung für die Weiterleitung hinzugefügt. Wenn einige Namen anders sind als die Standardnamen, z X-Forwarded-For. B. , X-ARR-ClientCertund X-ARR-LOG-ID, wurden die Namen in den Proxyeinstellungen der Serverfarm angepasst.

Header Details
GENERAL_SET_REQUEST_HEADER HeaderName="Max-Forwards", HeaderValue="10", Replace="true"
GENERAL_SET_REQUEST_HEADER HeaderName="X-Forwarded-For", HeaderValue="127.0.0.1:62489", Replace="true"
GENERAL_SET_REQUEST_HEADER HeaderName="X-ARR-SSL", HeaderValue="", Replace="true"
GENERAL_SET_REQUEST_HEADER HeaderName="X-ARR-ClientCert", HeaderValue="", Replace="true"
GENERAL_SET_REQUEST_HEADER HeaderName="X-ARR-LOG-ID", HeaderValue="fe9d20da-a571-4451-8ef3-0e7faf1a463a", Replace="true"

Die Anforderung wird an den nächsten Cacheknoten in der Hierarchie (übergeordneter Knoten) weitergeleitet.

Im vorherigen Schritt haben Sie diesen Server als W2K8WEBSERVER2angegeben. In diesem Schritt können Sie die folgenden Daten auf diesem Server untersuchen. Es gibt mehrere Datenpunkte, die verwendet werden können. Mit X-ARR-LOG-IDdieser Verwendung können Sie ermitteln, ob die Anforderung diesen Server erreicht hat.

FREB-Protokolle – Die Anforderung kann durch den X-ARR-LOG-ID vom untergeordneten Knoten gesendeten identifiziert werden. Dies fe9d20da-a571-4451-8ef3-0e7faf1a463a wurde im vorherigen Schritt identifiziert.

Header Details
GENERAL_REQUEST_HEADERS Headers="Connection: Keep-Alive Accept: */* Host: localhost Max-Forwards: 10 X-Original-URL: /iisstart.htm X-Forwarded-For: 127.0.0.1:62489 X-ARR-LOG-ID: fe9d20da-a571-4451-8ef3-0e7faf1a463a

IIS Advanced Logging Module – Mithilfe der erweiterten Protokollierung können Sie benutzerdefinierte Protokollierungsfelder basierend auf den Headern X-Forwarded-For hinzufügen und X-ARR-LOG-ID dann filtern, um nur zu protokollieren, wenn diese Header vorhanden sind.

#Software: IIS Advanced Logging Module
#Version: 1.0
#Start-Date: 2009-10-16 18:42:51.494
#Filter: ((ARRLogID isPresent ) || (xforward isPresent ))
#Fields:  date time cs-uri-stem cs-uri-query s-contentpath sc-status s-computername cs(Referer) sc-win32-status sc-bytes cs-bytes X-ARR-LOG-ID X-Forwarded-For
2009-10-16 18:51:29.983 /iisstart.htm - "C:\inetpub\wwwroot\iisstart.htm" 200 "W2K8WEBSERVER2" - 0 1680 219 "fe9d20da-a571-4451-8ef3-0e7faf1a463a" "127.0.0.1:62489"

Netzwerkmonitor – Verwenden Sie die Ablaufverfolgung, um die X-ARR-LOG-ID Und X-Forwarded-For wenn Sie eine bestimmte Anforderung nachverfolgen möchten.

ARR-Hilfsprogramm – Dieses Modul fügt die X-Forwarded-For Kopfzeile zum C-IP Feld und zur X-ARR-LOG-ID Kopfzeile des cs-uri-query Felds der Standard-IIS-Protokolle hinzu.

Notiz

Der ArrHelper wird derzeit von Microsoft nicht unterstützt.

Wiederholen Sie die Schritte 1 und 2 für mehrere Cacheebenen.

Wenn der übergeordnete Serverknoten W2K8WEBSERVER2 mit ARR- und Zwischenspeicherungsfeatures eingerichtet ist, müssen Sie möglicherweise die IISLOGS oder FREB überprüfen, um festzustellen, ob ein Cachetreffer oder -miss aufgetreten ist, und entscheiden, wo sie abhängig vom Eintragsstatus dieses Caches fortfahren sollen.

Die Anforderung wird an den Ursprungsserver weitergeleitet

Dieser Schritt kann als normale HTTPS-Anforderung behandelt werden und kann mit den folgenden Tools nachverfolgt werden:

  • Netzwerkmonitor – Erfasst Ablaufverfolgungen auf dem Origin-Server, um den Empfang der Anforderung zu überprüfen.
  • IIS-Protokolle – Überprüft IIS-Protokolle auf HTTP-Antwortcodes für den Inhalt, den Sie nachverfolgen.
  • IIS FREB-Protokolle – Wenn die Anforderung in der Netzwerkablaufverfolgung gefunden wurde und der HTTP-Antwortcode nicht 200 war, sollten Sie FREB möglicherweise erneut verwenden, um das Problem zu beheben.

Problembehandlung bei Cachefehlern

Überprüfen der Cache-Control-Header

Überprüfen Sie die vom Client empfangenen Header des Cachesteuerelements. Dies kann in Verbindung mit der Überprüfung der Cachesteuerelementregeln erfolgen, da die Header so konfiguriert werden können, dass Kopfzeilen überschreiben.

Überprüfen der Cache-Control-Regeln in ARR

Überprüfen Sie die Cachesteuerungsregeln in ARR, um zu überprüfen, ob die ARR-Zwischenspeicherung aktiviert ist.

Überprüfen der HTTP.SYS Einstellungen

Weitere Informationen dazu, warum Inhalte nicht von HTTP.sys im Kernel zwischengespeichert werden, finden Sie unter Instanzen, in denen HTTP.sys keine Inhalte zwischenspeichert.

Datenträgercachefehler

ARR protokolliert Ereignisse im Anwendungsereignisprotokoll, wenn Datenträgerfehler auftreten und den Datenträger als fehlerhaft kennzeichnen.

Log Name: Application 
Source: Application Request Routing 
Date: 11/2/2009 5:26:59 PM 
Event ID: 1006 
Task Category: None 
Level: Warning 
Keywords: Classic 
User: N/A 
Computer: 
Description: Drive with path '\?\E:\temp$\arrcache\' is being marked unhealthy. The data contains the error code. 
Event Xml: 

Weitere Informationen