squid磁盘缓存基础

4675阅读 0评论2011-07-01 
分类:系统运维

1.cache_dir指令说明
cache_dir scheme  directory  size L1 L2 [options]
scheme  存储机制ufs,aufs,coss,diskd,null
directory 缓存文件夹路径
size 缓存文件夹大小
L1 L2 1级和2级目录
options 选项 read-only(只读)  max-size(目录中单个文件最大值)

另外,请注意缓存目录的inodes节点数是否足够.

2.磁盘基准设置
cache_swap_low和cache_swap_high指令控制了存储在磁盘上的缓存对象.
cache_swap_low 90 
在总共磁盘使用低于cache_swap_low,squid不会删除cache目标.只有高于cache_swap_low,squid会逐渐删除目标.
cache_swap_high 95
该参数的目前用处不多了.

3.磁盘缓存对象大小限制
maxmum_object_size单个缓存对象最大 大小(单位可以是bytes、KB、MB)
minmum_object_size单个缓存对象最小大小(单位可以是bytes、KB、MB)
reply_body_max_size当某个响应大于该值,将立即被删除

4.分配对象到缓存目录
Squid有2个cache_dir选择算法.默认的算法lease-load;替代的算法是round-robin.
least-load算法,就如其名字的意义一样,它选择当前工作负载最小的cache目录。负载概念依赖于存储机制。对aufs,coss和diskd 机制来说,负载与挂起操作的数量有关。对ufs来说,负载是不变的。在cache_dir负载相等的情况下,该算法使用自由空间和最大目标大小作为附加选 择条件。
round-robin算法也使用负载作为衡量标准。它选择某个负载小于100%的cache目录,当然,该目录里的存储目标没有超出大小限制,并且不是只读的。

5.置换策略
cache_replacement_policy指令控制了squid的磁盘cache的置换策略.
squid提供的三种置换策略:
最少近来使用(LRU),贪婪对偶大小次数(GDSF),和动态衰老最少经常使用(LFUDA).
LRU是默认的置换策略,如果要要使用GDSF和LFUDA.你必须要在编译时增加--enable-removal-policies选项.

6.删除缓存对象
squidclient -r >/tmp/foo
该参数将将reload目标文件

7.删除个别对象
squidclient -m PURGE
该参数将删除目标文件

8.删除所有对象
echo '' > /usr/local/squid/var/cache/swap.state
如果要删除所有缓存对象,建议关闭服务,并且格式化分区或者删除缓存目录内容,并从新执行squid -z.

9.refresh_pattern
refresh_pattern指令间接的控制磁盘缓存.
语法:
refresh_pattern [-i] regexp min percent max [options]
regexp参数是大小写敏感的正则表达式
squid按顺序检查refresh_pattern行,当有一行匹配时,将停止搜索.
min参数是分钟数量,它是过期时间的最低时间限制.
max参数是存活相应时间最高限制.

override-expire

该选项导致squid在检查Expires头部之前,先检查min值。这样,一个非零的min时间让squid返回一个未确认的cache命中,即使该响应准备过期。

override-lastmod

改选项导致squid在检查LM-factor百分比之前先检查min值。

reload-into-ims

该选项让squid在确认请求里,以no-cache指令传送一个请求。换句话说,squid在转发请求之前,对该请求增 加一个If-Modified-Since头部。注意这点仅仅在目标有Last-Modified时间戳时才能工作。外面进来的请求保留no-cache 指令,以便它到达原始服务器。

ignore-reload

该选项导致squid忽略请求里的任何no-cache指令。


上一篇:搭建专用squid缓存日志服务器
下一篇:mysql基础