SQUID基本理论及优化研究
资料来源,不断更新中 http://blog.s135.com/book/squid/1.每G的磁盘缓冲.约使用3...
扫描右侧二维码阅读全文
26
2008/06

SQUID基本理论及优化研究

资料来源,不断更新中
http://blog.s135.com/book/squid/

1.每G的磁盘缓冲.约使用32M的内存,具体大小决定于系统体系结构以及object大小.

2.squid使用临时端口对每个连入链接进行服务,所以当服务器负载比较大时,需要对端口数进行优化

echo "1024 40000" > /proc/sys/net/ipv4/ip_local_port_range

3.日志文件路径.
日志分为cache.log,记录squid状态和调试信息
access.log文,记录对squid发起的每个客户请求
store.log,记录进入和离开缓存的每个目标的记录

cache_log /squid/logs/cache.log cache_access_log /squid/logs/access.log cache_store_log /squid/logs/store.log

当需要极端性能的时候,可以将日志记录取消

cache_log /dev/null cache_access_log /squid/logs/access.log cache_store_log none

4.visible_hostname
我们知道没有指定可见主机名,squid将无法启动
其原因是squid在提供服务时,会把主机头插入http via以及x-cache头部
提供用户更详细的信息.而且将会把主机名使用在检测转发环路中

5.日志滚动

squid -k rotate

6.no_cache
此项用于指定内容是否会被squid缓存.由于此项使用no.在语意上会造成一定的混淆
no_cache allow 是允许指定内容进行缓冲
no_cache deny 是让指定目标不被缓存

7.L1以及L2缓冲
squid存储方式ufs,aufs,和diskd中,会使用L1,L2级目录
L1和L2参数指定了第一级和第二级目录的数量,默认的是16和256
如果针对特定的缓冲对象数量进行服务
则可以通过L1,L2参数的调整,使得每个L2目录下的文件数量保持在一个合理值之内

8.maximum_object_size
如果对象包含Content-Length头部
则SQUID在直接比较两个值之后做出缓冲与否的判断
否则将会在将对象存放在本地磁盘之后再对比文件大小

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

10.删除缓存对象

squidclient -r http://www.lrrr.org/junk >/tmp/foo

11.删除个别对象

squidclient -m PURGE http://www.lrrr.org/junk

12.删除一组对象

awk '{print $7}' /usr/local/squid/var/logs/access.log \ | grep www.example.com \ | xargs -n 1 squidclient -m PURGE

13.删除全部对象
首先必须确认squid没有在运行

echo '' > /usr/local/squid/var/cache/swap.state

14.refresh_pattern
refresh_pattern规则仅仅应用到没有明确过时期限的响应。原始服务器能使用Expires头部,或者Cache-Control:max-age指令来指定过时期限。

refresh_pattern -i \.htm$ 0 20% 1440

15.文件系统优化
设置noatime
设置async

16.squid堆叠
通常把一组互相转发请求的cache(或代理)叫做cache堆叠。把cache堆叠的成员叫做邻居或对等伙伴
邻居cache有2种关系:父子或兄弟。从拓扑上看,父cache在堆叠里位于顶层,而兄弟cache位于同一层。两者真正的不同在于,父cache能为子cache转发cache丢失,然而兄弟cache之间不允许转发cache丢失。

17.HTCP与ICP
使用HTCP相对于ICP的主要优势在于更少的假命中。HTCP有更少的假命中,因为查询消息包含了完整的HTTP请求头部,包含了来自客户端的任何 Cache-Control要求。使用HTCP的主要不足在于HTCP查询更大,要求更多的CPU来处理产生和解析消息。测量显示,HTCP查询大约是 ICP查询的6倍大,这归咎于HTTP请求头部的存在。然而,squid的HTCP响应典型的比ICP响应小。

18.cache_peer_domain中域名的差异
如果是.test.com
则匹配test.com以及所有*.test.com
如果是test.com
则只匹配test.com

19.squid缓冲deflate压缩内容
squid 2.6之后对http/1.1的支持增强.支持ETAG以及Vary.
这样就能够对deflate压缩后的文件进行缓冲
cache_vary on

Last modification:November 26th, 2018 at 04:16 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment