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