
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 に設定したのですが、確かにすぐに多くのファイルが削除されました。