Chinaunix

标题: 看图学英文系列之二:refresh_pattern参数对squid的影响 [打印本页]

作者: coolzsb    时间: 2008-01-30 10:46
标题: 看图学英文系列之二:refresh_pattern参数对squid的影响
本文原发于:Coolzsb的杂货铺子,转载请说明

在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

以上所有的时间都是以分钟为单位计算
很容易看懂是不是?
可是,这个lm-factor到底是怎么算的?有什么具体意义?估计好多同学搞不清楚了吧。来,look,下面的图:

上面这张图来自于《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来说,缓冲的数据在cache中的存活时间是这样决定的:
此刻才发现,中文网络上许多有关于refresh_pattern的解释都是错误的,害人子弟,夭寿啊!
作者: liuhanzhao    时间: 2008-01-30 13:21
恩,这个写的不错,非常清晰
作者: LnBSD    时间: 2008-01-31 10:38
很不错
作者: iakuf    时间: 2008-02-02 15:01
是啊,就喜欢楼上这个
作者: nianzong    时间: 2008-02-02 21:50
不错不错,
作者: powerv_cu    时间: 2008-02-12 14:45
很好很强大
作者: twodog29    时间: 2008-02-13 17:58
权威指南上好像已经写明白了啊

不过还是多谢楼主了,再次复习
作者: psh2000    时间: 2008-11-05 11:57
那请问楼主。那个SQUID的默认处理规则究竟是什么呢?好象进去后永远不过期。
必须在浏览器ctrl+f5强制刷新才会出现新的内容




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2