Поделиться через


Устранение неполадок с элементами кэша в ARR версии 2.0 или более поздней

Применимо к: службы IIS

Обзор

В этом пошаговом руководстве вы узнаете, как трассировать запрос по мере передачи ARR и отправляется на сервер следующего уровня и просмотреть сведения, которые можно получить, чтобы определить, откуда был отправлен запрос и откуда он был отправлен.

Средства, используемые в этом средстве устранения неполадок

Общие сведения об архитектуре фермы

Первым шагом является понимание архитектуры среды, в том числе следующего.

  • Топология фермы ARR (сколько серверов, как настроена маршрутизация, другие устройства)
  • Правила переопределения URL-адресов на месте

В этом пошаговом руководстве можно использовать следующую конфигурацию для трассировки запроса.

На схеме показан дочерний узел, родительский узел и сервер-источник со стрелками, которые указывают на отсутствие кэша и запросы.

Конфигурация кэша дисков

В следующем фрагменте кода показан локальный диск с максимальным размером 100 ГБ.

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

Правила управления глобальным кэшем

Это правило определяется как кэш в течение 60 минут, если директива управления кэшем не существует.

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

Создание плана сбора данных

В этом разделе описывается поток попаданий и пропусков кэша по мере их передачи через ARR, а также определение средств или журналов, которые можно использовать для изучения запросов. Следующие шаги описывают поток запросов для содержимого, который ранее не кэшировался с помощью конфигурации, предоставленной в качестве ссылки, и средств, используемых на каждом шаге.

  • Запрошенный контент не найден локально (ни в памяти, ни на диске на дочернем узле).

    • Журналы FREB
    • Встроенные службы IIS для ведения журнала
    • Сетевой монитор
  • Запрос перенаправлен на узел кэша следующего уровня (родительский узел).

    • Журналы FREB
    • Модуль расширенного ведения журнала IIS
    • Встроенные службы IIS для ведения журнала
    • Сетевой монитор
  • Запрошенный контент не найден на узле кэша следующего уровня (ни в памяти, ни на диске). Повторяйте точку 2 столько раз, сколько нужно на основе иерархии кэша.

  • Запрос пересылается на сервер-источник.

    • Журналы FREB
    • Встроенные службы IIS для ведения журнала
    • Сетевой монитор

Сбор данных

Запрошенный контент не найден локально (ни в памяти, ни на диске)

Здесь можно определить попадание или пропустить кэш в журналах IIS или журналах FREB. Журналы FREB предоставляют дополнительные сведения, например, где был перенаправлен запрос, что важно при наличии нескольких серверов нижнего уровня.

Запись журнала IIS . В поле cs-uri-query вы найдете следующие записи, определяющие попадание кэша или пропустить запрос и GUID запроса, который можно использовать для идентификации запроса на серверах нижнего уровня.

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 — кэш не найден записью ARR_DISK_CACHE_GET_FAILED.

Тип Формат ввода Сведения
r Предупреждение ARR_DISK_CACHE_GET_FAILED FilePath="\?\C:\ARRCache\localhost\iisstart.htm.full", ErrorCode="Система не может найти указанный файл. (0x80070002)", IsRangeEntry="false", RangeOffset="0", RangeSegmentSize="0"

Определите сервер, на который направляется запрос. Просмотрите запрос, отправляемый на сервер W2K8WEBSERVER2, который будет сервером следующего уровня для проверки данных.

Тип Формат ввода Сведения
i ARR_SERVER_ROUTED RoutingReason="LoadBalancing", Server="W2K8WEBSERVER2", State="Active", TotalRequests="8", FailedRequests="0", CurrentRequests="1", BytesSent="1127", BytesReceived="6441379", ResponseTime="31351"

В запрос переадресации добавляются следующие заголовки. Если некоторые имена отличаются от имен по умолчанию, таких как X-Forwarded-For, X-ARR-ClientCertи X-ARR-LOG-IDимена были настроены в параметрах прокси-сервера фермы серверов.

Верхний колонтитул Сведения
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"

Запрос перенаправлен на узел кэша следующего уровня (родительский узел)

На предыдущем шаге вы определили этот сервер как W2K8WEBSERVER2. На этом шаге можно проверить следующие данные на этом сервере. Существует несколько точек данных, которые можно использовать. С помощью X-ARR-LOG-IDэтого запроса можно определить, достиг ли запрос этого сервера.

Журналы FREB— запрос может быть идентифицирован отправленным X-ARR-LOG-ID из дочернего узла. Он fe9d20da-a571-4451-8ef3-0e7faf1a463a был определен на предыдущем шаге.

Верхний колонтитул Сведения
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— с помощью расширенного ведения журнала можно добавлять настраиваемые поля ведения журнала на основе заголовков X-Forwarded-For , а X-ARR-LOG-ID затем использовать фильтрацию только при наличии этих заголовков.

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

Сетевой монитор — используйте трассировку для идентификации X-ARR-LOG-ID и X-Forwarded-For трассировки определенного запроса.

Вспомогательный модуль ARR — этот модуль добавляет X-Forwarded-For заголовок в поле и X-ARR-LOG-ID заголовок C-IP cs-uri-query в поле журналов IIS по умолчанию.

Примечание.

В настоящее время ArrHelper не поддерживается корпорацией Майкрософт.

Повторите шаги 1 и 2 для нескольких уровней кэша

Если родительский узел W2K8WEBSERVER2 сервера настроен с помощью функций ARR и кэширования, может потребоваться проверить IISLOGS или FREB, чтобы узнать, был ли кэш хит или мисс, и решить, куда следует продолжить в зависимости от состояния входа кэша.

Запрос пересылается на сервер источника

Этот шаг можно рассматривать как обычный HTTPS-запрос и отслеживаться с помощью следующих средств:

  • Сетевой монитор — записывает трассировки на сервере источника для проверки получения запроса.
  • Журналы IIS — проверяет журналы IIS для кодов http-ответов для отслеживаемого содержимого.
  • Журналы FREB IIS. Если запрос найден в трассировке сети и код ответа HTTP не был 200, возможно, потребуется снова использовать FREB для устранения проблемы.

Устранение неполадок кэша

Проверка заголовков элементов управления кэшем

Проверьте заголовки cache-Control, полученные от клиента. Это можно сделать вместе с проверкой правил управления кэшем, так как заголовки можно настроить для переопределения заголовков.

Проверка правил управления кэшем в ARR

Проверьте правила управления кэшем в ARR, чтобы проверить, включена ли кэширование ARR.

Проверка параметров HTTP.SYS

Дополнительные сведения о том, почему содержимое не кэшировано HTTP.sys в ядре, см. в примерах, в которых HTTP.sys не кэширует содержимое.

Сбои кэша дисков

ARR регистрирует события в журнал событий приложения при сбое диска и помечает диск как неработоспособный.

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: 

Дополнительная информация