Назад | Перейти на главную страницу

Маршрутизация запросов приложений не очищает файлы кеша

Я настроил ARR как обратный прокси, который выполняет кеширование вывода. Записи кэша имеют TTL 20 минут, но кажется, что файлы кеша остаются на диске навсегда.

TTL настраивается в файле приложения Web.config в соответствии с правилами перезаписи:

    <rule name="Default ARR cache control" enabled="true">
      <match url=".*" />
      <serverVariables>
        <!-- First arg of value is: 1 to be always active, 0 only if there are no cache headers set. -->
        <set name="ARR_CACHE_CONTROL_OVERRIDE" value="0,max-age=1200" />
      </serverVariables>
    </rule>

В ответах HTTP я также могу правильно видеть этот максимальный возраст, и срок действия кеша действительно истекает, я получаю новые результаты. Если я открою файл кеша, он также будет включать Cache-Control: public, max-age=1200 в его заголовке.

Однако файлы кеша остаются, даже если не используются. «Интервал очистки кэша» установлен на 5 минут для кэширования диска, поэтому я предполагаю, что файлы должны оставаться там не более 25 минут, но есть и файлы месячной давности.

Что мне не хватает, как заставить ARR удалить устаревшие файлы кеша?

Вот объясняется, как scavenge.exe можно использовать для очистки файлов кеша на вторичный диск, но ничего о первичном. Или мне следует вручную запустить эту утилиту, если кэш-диск не заполняется медленно?

Похоже, я неправильно понял, как эти конфигурации должны работать, и «Интервал очистки кеша» работает вместе с «Высоким порогом использования диска».

Так что, возможно, файлы очищаются каждые 5 минут, но только при достижении «верхнего порога использования диска»? Похоже, что это действительно так, как также подробно описано в это сообщение в блоге: Я только что настроил «Низкий порог использования диска» как 4 (процентов), «Высокий порог использования диска» как 5, и да, вскоре было удалено много файлов.