极品分享

Squid加速:关于命中率的相关问题!

1、什么是命中率?

命中率是指第二次及第二次以后访问时发现有cache存在并且未过期而直接提供给请求者的概率。

2、如何查看squid命中率?

在squid/bin目录下执行 squidclient -p 80 mgr:info

3、命中率查询结果是什么意思?

查看的结果:

某方面的 5分钟平均值 一小时平均值
Request Hit Ratios: 5min: 80.1%, 60min: 80.3%
Byte Hit Ratios: 5min: 66.6%, 60min: 70.0%
Request Memory Hit Ratios: 5min: 30.3%, 60min: 32.6%
Request Disk Hit Ratios: 5min: 8.7%, 60min: 8.8%

解释:
Request Hit Ratios:
表示第二次或者以后的请求时,发现它在缓存里面且有效,不然就从原始服务器读取

Byte Hit Ratios:顾名思义,字节数

Request Memory Hit Ratios:这个是缓存在内存里面的东西
Request Disk Hit Ratios:
这个是从硬盘读取的

问题:

为什么Request Memory Hit Ratios Request Disk Hit Ratios 小于 Request Hit Ratios

查看access.log:

结果发现:在access.log中不仅有TCP_MEM_HIT和TCP_HIT,还有很多如下的HIT

TCP_NEGATIVE_HIT

TCP_IMS_HIT

TCP_REFRESH_HIT

所以Request Memory Hit Ratio(相当于TCP_MEM_HIT)加上Request Disk Hit Ratios(相当于TCP_HIT 必然小于Request Hit Ratios(相当于所有的HIT

4、liunx下执行查看命令报错!怎么办?

用如下命令查看squid命中率
/usr/local/squid/bin/squidclient -p 80 mgr:info
却提示
client: ERROR: Cannot connect to localhost:80: Connection refused
根据cu的帖子,在squid.conf中,确认有如下配置
acl manager proto cache_objectacl
acl localhost src 127.0.0.1/255.255.255.255
acl localhost src 10.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
http_access allow Manager localhost
还是不行,因为squid配置为虚拟主机的模式
http_port xx.xxx.254.203:80 defaultsite=192.168.1.18 vhost vport
于是在squid.conf中加入
http_port 3128
重新载入squid配置文件
/usr/local/squid/sbin/squid -k reconfigure
然后再次用
/usr/local/squid/bin/squidclient -p 3128 mgr:info
这次可以了,省略端口号也可以。

不看不知道,一看吓一跳。命中率才
Cache information for squid:
Request Hit Ratios: 5min: 14.9%, 60min: 17.4%
Byte Hit Ratios: 5min: -2.5%, 60min: 0.2%
真是低的可怜。

2012-03-07 0 /
WEB服务器
/
标签: 

评论回复

回到顶部