apache,mod_cache、ファイルの更新でキャッシュの有効期限が変化する

ファイル更新直後はキャッシュの有効期限が短くなり、その後徐々に長くなる。
一度更新されたファイルは更新されやすいという推測に基づくものだろう。
これ関係のパラメータ設定がどこでできるのかあるいはできないのかは不明→ドキュメントにのってたやんけ。CacheLastModifiedFactor。

環境

apache 2.2.8

設定

<IfModule mod_cache.c> 
CacheMaxExpire 50
CacheDefaultExpire 50

<IfModule mod_mem_cache.c> 
CacheEnable mem /cache_test/ 
MCacheSize 100000
MCacheMaxObjectCount 5000
MCacheMinObjectSize 1 
MCacheMaxObjectSize 100000
</IfModule> 

</IfModule>

テストプログラム

require 'net/http'

interval=Float($*[0]||0.5)

h=Net::HTTP.new 'localhost',80

last_age=nil
last_body=nil

while(true)
  sleep interval
  print '.'
  r=h.get '/cache_test/0'
  age=r['age']
  body=r.body[0..0]
  
  puts '',[last_age,last_body]*',' if age.nil?

  last_age,last_body=age,body
end

出力

.
,
........................
49,a
........................
49,a
........................
49,a
........................
49,a
........................ //このへんでコンテンツの内容をかきかえた
49,a
..
2,b
..
2,b
...
4,b
...
4,b
...
4,b
....
6,b
....
6,b
....
6,b
.....
8,b
.....
8,b
......
10,b
.......
12,b
.......
13,b
........
15,b
.........
17,b
..........
19,b
...........
21,b
............
23,b
.............
26,b
..............
28,b
................
32,b
.................
34,b
...................
38,b
.....................
43,b
.......................
47,b
........................
49,b
........................
49,b
........................
49,b
........................
49,b