Compartilhar via


Solução de problemas de itens de cache no ARR versão 2.0 ou posterior

Aplica-se a: Serviços de Informações da Internet

Visão geral

Neste passo a passo, você pode aprender a rastrear uma solicitação à medida que ela passa pelo ARR e é enviada para um servidor de próxima camada e examinar as informações que podem ser adquiridas para determinar para onde a solicitação foi enviada e de onde ela foi atendida.

Ferramentas usadas nesta solução de problemas

Entenda a arquitetura da fazenda

O primeiro passo é entender a arquitetura do ambiente, incluindo o seguinte.

  • Topologia do Farm ARR (quantos servidores, como o roteamento é configurado, outros dispositivos)
  • Regras de reconfiguração de URL em vigor

Neste passo a passo, você pode usar a configuração a seguir para rastrear uma solicitação.

O diagrama mostra um nó filho, um nó pai e um servidor de origem com setas para indicar erros e solicitações de cache.

Configuração do cache de disco

O snippet de código a seguir mostra que uma unidade local com um tamanho máximo de 100 GB está configurada.

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

Regras de controle de cache global

Essa regra é definida como cache por 60 minutos quando não existe nenhuma diretiva de controle de cache.

<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>

Crie um plano de coleta de dados

Esta seção orientará você pelo fluxo de acertos e erros de cache à medida que eles transitam pelo ARR e identificará quaisquer ferramentas ou logs que você possa usar para investigar as solicitações. As etapas a seguir descrevem o fluxo de solicitação para conteúdo não armazenado em cache anteriormente usando a configuração fornecida como referência e as ferramentas usadas em cada etapa.

  • O conteúdo solicitado não é encontrado localmente (nem na memória nem no disco no nó filho).

    • Registros FREB
    • IIS interno em log
    • Monitor de Rede
  • A solicitação é encaminhada para o próximo nó de cache de camada (nó pai).

    • Registros FREB
    • Módulo de Log Avançado do IIS
    • IIS interno em log
    • Monitor de Rede
  • O conteúdo solicitado não é encontrado no nó de cache da próxima camada (nem na memória nem no disco). Repita o ponto 2 quantas vezes forem apropriadas com base na hierarquia do cache.

  • A solicitação é encaminhada para o servidor de origem.

    • Registros FREB
    • IIS interno em log
    • Monitor de Rede

Coletar os dados

O conteúdo solicitado não é encontrado localmente (nem na memória nem no disco)

Aqui você pode identificar um acerto ou erro de cache nos logs do IIS ou nos logs FREB. Os logs do FREB fornecem detalhes adicionais, como para onde a solicitação foi roteada, o que é importante se houver vários servidores de nível inferior.

Entrada de Log do IIS – Você encontrará as seguintes entradas no campo cs-uri-query que identifica o acerto ou erro do cache e o GUID da solicitação, que pode ser usado para identificar a solicitação em servidores de nível inferior.

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.

Entrada de log FREB - A falha de cache é encontrada pela entrada ARR_DISK_CACHE_GET_FAILED.

Tipo Entry Detalhes
r Aviso ARR_DISK_CACHE_GET_FAILED FilePath="\?\C:\ARRCache\localhost\iisstart.htm.full", ErrorCode="O sistema não consegue localizar o arquivo especificado. (0x80070002)", IsRangeEntry="false", RangeOffset="0", RangeSegmentSize="0"

Identifique o servidor para o qual a solicitação é roteada. Observe a solicitação que está sendo enviada ao servidor W2K8WEBSERVER2, que será o servidor de próximo nível para revisão de dados.

Tipo Entry Detalhes
i ARR_SERVER_ROUTED RoutingReason="LoadBalancing", Server="W2K8WEBSERVER2", State="Active", TotalRequests="8", FailedRequests="0", CurrentRequests="1", BytesSent="1127", BytesReceived="6441379", ResponseTime="31351"

Os cabeçalhos a seguir são adicionados à solicitação de encaminhamento. Se alguns nomes forem diferentes dos nomes padrão, como X-Forwarded-For, X-ARR-ClientCerte X-ARR-LOG-ID, os nomes foram personalizados nas configurações de proxy do Farm de Servidores.

parâmetro Detalhes
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"

A solicitação é encaminhada para o próximo nó de cache de camada (nó pai)

Na etapa anterior, você identificou esse servidor como W2K8WEBSERVER2. Nesta etapa, você pode examinar os seguintes dados neste servidor. Existem vários pontos de dados que podem ser usados. Usando X-ARR-LOG-IDo , você pode identificar se a solicitação chegou a esse servidor.

Logs FREB - A solicitação pode ser identificada X-ARR-LOG-ID pelo enviado do nó filho. O fe9d20da-a571-4451-8ef3-0e7faf1a463a foi identificado na etapa anterior.

parâmetro Detalhes
GENERAL_REQUEST_HEADERS headers="Conexão: Keep-Alive Aceitar: */* 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

Módulo de Log Avançado do IIS - Usando o log avançado, você pode adicionar campos de log personalizados com base nos cabeçalhos X-Forwarded-For e X-ARR-LOG-ID , em seguida, usar a filtragem para registrar apenas quando esses cabeçalhos estiverem presentes.

#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"

Monitor de Rede - Use o rastreamento para identificar o X-ARR-LOG-ID e X-Forwarded-For se você deseja rastrear uma solicitação específica.

Auxiliar ARR - Este módulo adiciona o X-Forwarded-For cabeçalho ao C-IP campo e o X-ARR-LOG-ID cabeçalho ao cs-uri-query campo dos logs padrão do IIS.

Observação

No momento, o ArrHelper não tem suporte da Microsoft.

Repita as etapas 1 e 2 para vários níveis de cache

Se o nó W2K8WEBSERVER2 pai do servidor estiver configurado com recursos de ARR e cache, talvez seja necessário verificar o IISLOGS ou FREB para ver se houve um acerto ou erro de cache e decidir para onde prosseguir, dependendo do status de entrada desse cache.

A solicitação é encaminhada para o Servidor de Origem

Esta etapa pode ser tratada como uma solicitação HTTPS normal e pode ser rastreada com as seguintes ferramentas:

  • Monitor de Rede - Captura rastreamentos no servidor de origem para verificar o recebimento da solicitação.
  • Logs do IIS - Verifica os logs do IIS em busca de códigos de resposta HTTP para o conteúdo que você está rastreando.
  • Logs FREB do IIS – se a solicitação foi encontrada no rastreamento de rede e o código de resposta HTTP não foi 200, talvez você queira usar o FREB novamente para solucionar o problema.

Solução de problemas de falhas de cache

Verifique os cabeçalhos de controle de cache

Verifique os cabeçalhos Cache-Control recebidos do cliente. Isso pode ser feito em conjunto com a verificação das regras de controle de cache, pois os cabeçalhos podem ser configurados para substituir os cabeçalhos.

Revise as regras de controle de cache no ARR

Verifique as Regras de Controle de Cache no ARR para verificar se o cache do ARR está habilitado.

Verifique HTTP.SYS configurações

Para obter mais informações sobre por que o conteúdo não é armazenado em cache pelo HTTP.sys no kernel, consulte Instâncias em que o HTTP.sys não armazena conteúdo em cache.

Falhas de cache de disco

O ARR registra eventos no log de eventos do aplicativo quando ocorrem falhas de disco e marca o disco como não íntegro.

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: 

Mais informações