Coolzsb的杂货铺子-refresh_pattern参数对squid的影响

Jan 30th, 2008

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2008/01/30/coolzsbdezahuopuzi-refresh_patterncanshuduisquiddeyingxiang.html

 

转自:Coolzsb的杂货铺子

这两天跟扶凯同学讨论了一下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算法作出了一个很直观的描述。

请注意这张图的起始时间坐标:Last-Modified,这个是由squid读取的原始web数据所规定的。
然后就是Date,这个是原始数据进入squid的缓冲的时间。
最后就是Expires,这个就是原始数据在squid中的缓冲过期时间。

可以很容易的得出结论,对于LM-factor算法来说,原始数据在squid中的缓冲时间为
(原始数据进入squid的缓冲的时间-原始web数据所规定的Last-Modified时间)*percent

所以,我们可以郑重得出结论,在squid的refresh_pattern设置中,percent与Min、Max两个值是完全没有关系

本人注:squid的过期,由percent or Min,Max来决定.看清哦。是or.是由这二个其中一个那个先到期,那个就先生效。后面的那个不会生效.

最后总结一下,对于squid来说,缓冲的数据在cache中的存活时间是这样决定的:

  • 如果有定义refresh_pattern:只要满足以下两个条件之一,缓冲对象过期
    • 缓冲对象在squid的cache缓冲的时间大于refresh_pattern定义的max
    • 缓冲对象在squid的cache缓冲的时间大于(原始数据进入squid的缓冲的时间-原始web数据所规定的Last-Modified时间)*percent
  • 如果符合多个refresh_pattern定义,以第一条符合定义的refresh_pattern为准
  • 如果没有符合定义的refresh_pattern,则按squid的默认处理规则

下面这个会比较安装明白,这是对referesh_pattern

FRESH if (CURRENT_DATE – DATE) < min

FRESH if (CURRENT_DATE – DATE)/(DATE – LM_DATE) < percent

STABLE if (CURRENT_DATE – DATE) > max

OTHER, STABLE

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. guoguoseo
    Jan 31st, 2008 at 16:15
    Reply | Quote | #1

    您好站长 我想申请一个友情链接
    您的链接已经做好
    地址:http://www.caojinlong.com.cn
    名称:曹金龙的博客

  2. 扶凯
    Jan 31st, 2008 at 16:49
    Reply | Quote | #2

    抱歉。你的文章太少了。以后多一点才交换好吗?