Я настроил 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, и да, вскоре было удалено много файлов.