一月 30

这两天跟扶凯同学讨论了一下refresh_pattern这个参数对squid行为的影响,略有心得,小纪录一下。

在squid.conf.default里面,refresh_pattern参数下面的注释是这样的:

TAG: refresh_pattern
usage: refresh_pattern [-i] regex min percent max [options]

Basically a cached object is:

FRESH if expires < now, else STALE
STALE if age > max
FRESH if lm-factor < percent, else STALE
FRESH if age < min
else STALE

以上所有的时间都是以分钟为单位计算
很容易看懂是不是?

  • refresh_pattern指出的缓冲对象过期了,这个对象过期。(这不是废话嘛!)
  • refresh_pattern指出的缓冲对象在squid的cache缓冲的时间大于max的话,这个对象过期。
  • refresh_pattern指出的缓冲对象的lm-factor大于等于percent的话,这个对象过期。
  • refresh_pattern指出的缓冲对象在squid的cache缓冲的时间小于min的话,这个对象不过期。

可是,这个lm-factor到底是怎么算的?有什么具体意义?估计好多同学搞不清楚了吧。来,look,下面的图:

LM-factor算法
上面这张图来自于《Squid.Definitive.Guide》第七章,对squid的LM-factor算法作出了一个很直观的描述。
Continue reading »