Устранение неполадок с элементами кэша в ARR версии 2.0 или более поздней
Применимо к: Службы IIS
Обзор
В этом пошаговом руководстве вы узнаете, как отслеживать запрос по мере его прохождения через ARR и отправки на сервер следующего уровня, а также просмотреть сведения, которые можно получить, чтобы определить, куда был отправлен запрос и откуда он был обслужен.
Средства, используемые в этом средстве устранения неполадок
- Вспомогатель ARR
- Трассировка неудачных запросов (FREB)
- IIS Advanced Logging
- Сетевой монитор
Общие сведения об архитектуре фермы
Первым шагом является понимание архитектуры среды, включая следующее.
- Топология фермы 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 Advanced Logging
- Встроенное ведение журнала 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 Advanced Logging. С помощью расширенного ведения журнала можно добавлять настраиваемые поля ведения журнала на основе заголовков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
заголовок в C-IP
поле, а X-ARR-LOG-ID
заголовок — в cs-uri-query
поле журналов IIS по умолчанию.
Примечание.
В настоящее время ArrHelper не поддерживается корпорацией Майкрософт.
Повторите шаги 1 и 2 для нескольких уровней кэша
Если на родительском узле W2K8WEBSERVER2
сервера настроены функции ARR и кэширования, может потребоваться проверка IISLOGS или FREB, чтобы узнать, был ли кэш Попадание или Промах, и решить, куда действовать в зависимости от состояния записи этого кэша.
Запрос перенаправлен на сервер-источник
Этот шаг можно рассматривать как обычный HTTPS-запрос и отслеживать с помощью следующих средств:
- Монитор сети — записывает трассировки на сервере-источнике для проверки получения запроса.
- Журналы IIS — проверяет журналы IIS на наличие кодов http-ответов для отслеживаемого содержимого.
- Журналы IIS FREB . Если запрос был найден в трассировке сети и код ответа HTTP не был указан в формате 200, возможно, вам потребуется снова использовать FREB для устранения проблемы.
Устранение неполадок кэша
Проверка заголовков Cache-Control
Проверьте Cache-Control заголовки, полученные от клиента. Это можно сделать вместе с проверкой правил управления кэшем, так как заголовки можно настроить для переопределения заголовков.
Просмотр правил 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:
Дополнительная информация
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по