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

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

Я настроил 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 я также могу правильно видеть этот max-age, и кэш действительно истекает, я получаю новые результаты. Если я открою файл кэша, он также включит его Cache-Control: public, max-age=1200в свой заголовок.

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

Что я упускаю? Как заставить ARR удалить устаревшие файлы кэша?

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

решение1

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

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

Связанный контент