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
- Auxiliar ARR
- FREB (Rastreamento de Solicitação com Falha)
- Log avançado do IIS
- Monitor de Rede
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.
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-ClientCert
e 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-ID
o , 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: