Устранение неполадок с элементами кэша в ARR версии 2.0 или более поздней
Применимо к: службы IIS
Обзор
В этом пошаговом руководстве вы узнаете, как трассировать запрос по мере передачи ARR и отправляется на сервер следующего уровня и просмотреть сведения, которые можно получить, чтобы определить, откуда был отправлен запрос и откуда он был отправлен.
Средства, используемые в этом средстве устранения неполадок
- Вспомогательный помощник по ARR
- Трассировка неудачных запросов (FREB)
- Расширенное ведение журнала IIS
- Сетевой монитор
Общие сведения об архитектуре фермы
Первым шагом является понимание архитектуры среды, в том числе следующего.
- Топология фермы 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: