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