Home  >  Article  >  Database  >  squidclient 测SQUID 缓存的命中率

squidclient 测SQUID 缓存的命中率

WBOY
WBOYOriginal
2016-06-07 15:04:251842browse

squidclient这个东东很好用 清理squid 缓存 查看squid状态等等功能,都挺方便的 基本的使用方法 *取得squid运行状态信息: squidclient -p 80 mgr:info *取得squid内存使用情况: squidclient -p 80 mgr:mem *取得squid已经 缓存 的列表: squidclient -p 80



squidclient这个东东很好用 清理squid缓存  查看squid状态等等功能,都挺方便的

基本的使用方法
*取得squid运行状态信息: squidclient -p 80 mgr:info
*取得squid内存使用情况: squidclient -p 80 mgr:mem
*取得squid已经缓存的列表: squidclient -p 80 mgr:objects. use it carefully,it may crash
*取得squid的磁盘使用情况: squidclient -p 80 mgr:diskd
*强制更新某个url:squidclient -p 80 -m PURGE http://www.php-oa.com/static.php
*更多的请查看:squidclient -h 或者 squidclient -p 80 mgr:

 

* 如何得知 squid 执行中的状态?

最简单的方式便是透过浏览器来观察。squid 本身提供一只 cgi 程式,档名为cachemgr.cgi,squid 安装完后将它复制到 Apache 下的 cgi-bin 这个目录下即可使用。

要察看Cache Manager提供的资讯时,请在浏览器的位址列中键入

http://伺服器的名称或IP位址/cgi-bin/cachemgr.cgi

当然,我更加喜欢使用下面的方法

squidclient -t 1 -h localhost -p 80 mgr:inf 这样也行

 

下面是一些基本内容

Squid Object Cache: Version 2.6 //Squid的版本

HTTP/1.0 200 OK
Date: Tue, 11 Mar 2008 16:08:14 GMT
Content-Type: text/plain
Expires: Tue, 11 Mar 2008 16:08:14 GMT
Last-Modified: Tue, 11 Mar 2008 16:08:14 GMT
Connection: close

Squid Object Cache: Version 2.6.STABLE6
Start Time:     Tue, 11 Mar 2008 10:21:47 GMT
Current Time:   Tue, 11 Mar 2008 16:08:14 GMT
Connection information for squid:
        Number of clients accessing cache:      2023            使用proxy的电脑数量
        Number of HTTP requests received:       81787        客户端http要求数量
        Number of ICP messages received:        0        接受到的icp query数量
        Number of ICP messages sent:    0            发出icp query数量
        Number of queued ICP replies:   0
        Request failure ratio:   0.00
        Average HTTP requests per minute since start:   236.1    每分钟http request的数量
        Average ICP messages per minute since start:    0.0
        Select loop called: 24789642 times, 0.839 ms avg
Cache information for squid:
        Request Hit Ratios:     5min: 99.6%, 60min: 98.7%    Cache Request命中率
        Byte Hit Ratios:        5min: 100.0%, 60min: 100.0%    Cache Byte命中率
        Request Memory Hit Ratios:      5min: 1.6%, 60min: 1.2%
        Request Disk Hit Ratios:        5min: 82.0%, 60min: 90.5%
        Storage Swap size:      7723212 KB            存放cache的磁碟使用量
        Storage Mem size:       7992 KB                存放cache的记忆体使用量
        Mean Object Size:       264.01 KB           
        Requests given to unlinkd:      279
Median Service Times (seconds)  5 min    60 min:
        HTTP Requests (All):   2.94900  3.46762
        Cache Misses:          0.03427  0.03427
        Cache Hits:            5.06039  4.79440
        Near Hits:             0.30459  0.35832
        Not-Modified Replies:  0.00179  0.00179
        DNS Lookups:           0.00000  0.00000
        ICP Queries:           0.00000  0.00000
Resource usage for squid:
        UP Time:        20787.011 seconds
        CPU Time:       128.799 seconds
        CPU Usage:      0.62%
        CPU Usage, 5 minute avg:        0.44%
        CPU Usage, 60 minute avg:       0.51%
        Process Data Segment Size via sbrk(): 34292 KB
        Maximum Resident Size: 0 KB
        Page faults with physical i/o: 0
Memory usage for squid via mallinfo():
        Total space in arena:   34424 KB
        Ordinary blocks:        27031 KB   8599 blks
        Small blocks:               0 KB      0 blks
        Holding blocks:          6152 KB      2 blks
        Free Small blocks:          0 KB
        Free Ordinary blocks:    7392 KB
        Total in use:           33183 KB 82%
        Total free:              7392 KB 18%
        Total size:             40576 KB
Memory accounted for:                记忆体使用状态
        Total accounted:        21777 KB
        memPoolAlloc calls: 15446992
        memPoolFree calls: 15337015
File descriptor usage for squid:
        Maximum number of file descriptors:   16384        系统最大file descriptor数
        Largest file desc currently in use:   1165        目前使用file descriptor最大值
        Number of file desc currently in use:  571        目前正在使用的file descriptor数
        Files queued for open:                   0
        Available number of file descriptors: 15813
        Reserved number of file descriptors:   100
        Store Disk files open:                 266
        IO loop method:                     epoll
Internal Data Structures:
         29315 StoreEntries            Cache中存放的快取档案数量
           190 StoreEntries with MemObjects    记忆体斗的快取档案数量
           176 Hot Object Cache Items        磁碟机中存放的快取档案数量
         29253 on-disk objects

Proxy 回应的速度很慢时,可能是那里出问题?如何判定问题发生在那里?

网路回应慢有可能是目的网站的问题,也有可能是带宽不足的问题带宽需求是永远根不上使用者的脚步,故在网路出现变慢的问题时,请先以 ping 或 traceroute 指令测试网路的连线状态,如果封包回应很慢或封包遗失率很高,应该是属网路本身的问题,如果测试的结果良好,再继续看是否是 Proxy 出了问题。当然ping也不一定能说明问题














我的squid2.5, log中有大量的TCP_MISS/200记录;;
root# perl -lane '$type{$F[3]}++ if $F[1] > 2792;' -e 'END { print "$type{$_} $_" for keys %type }' /var/log/squid/access.log | sort -n
1 TCP_MEM_HIT/200
1 TCP_MISS/211
1 TCP_MISS/303
1 TCP_MISS/408
3 TCP_MISS/202
6 TCP_MISS/403
8 TCP_CLIENT_REFRESH_MISS/504
8 TCP_MISS/500
10 TCP_MISS/400
16 TCP_CLIENT_REFRESH_MISS/000
18 TCP_REFRESH_MISS/000
20 TCP_REFRESH_MISS/302
30 TCP_CLIENT_REFRESH_MISS/302
31 TCP_CLIENT_REFRESH_MISS/502
61 TCP_CLIENT_REFRESH_MISS/304
77 TCP_MISS/204
96 TCP_CLIENT_REFRESH_MISS/206
99 TCP_CLIENT_REFRESH_MISS/503
107 TCP_MISS/404
166 TCP_MISS/301
212 TCP_MISS/504
215 TCP_MISS/206
252 TCP_REFRESH_HIT/200
257 TCP_CLIENT_REFRESH_MISS/200
257 TCP_REFRESH_MISS/200
342 TCP_MISS/502
611 TCP_MISS/302
693 TCP_MISS/503
953 TCP_REFRESH_HIT/304
961 TCP_MISS/304
1302 TCP_MISS/000
21782 TCP_MISS/200
[root@oa squid]#

再看
应于HTTP请求,下列标签可能出现在access.log文件的第四个域。

TCP_HIT
Squid发现请求资源的貌似新鲜的拷贝,并将其立即发送到客户端。

TCP_MISS
Squid没有请求资源的cache拷贝。

TCP_REFERSH_HIT
Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器返回304(未修改)响应,指示squid的拷贝仍旧是新鲜的。

TCP_REF_FAIL_HIT
Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。然而,原始服务器响应失败,或者返回的响应Squid不能理解。在此情形下,squid发送现有cache拷贝(很可能是陈旧的)到宊?户端。

TCP_REFRESH_MISS
Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器响应新的内容,指示这个cache拷贝确实是陈旧的。

TCP_CLIENT_REFRESH_MISS
Squid发现了请求资源的拷贝,但客户端的请求包含了Cache-Control: no-cache指令。Squid转发客户端的请求到原始服务器,强迫cache确认。

TCP_IMS_HIT
客户端发送确认请求,Squid发现更近来的、貌似新鲜的请求资源的拷贝。Squid发送更新的内容到客户端,而不联系原始服务器。

TCP_SWAPFAIL_MISS
Squid发现请求资源的有效拷贝,但从磁盘装载它失败。这时squid发送请求到原始服务器,就如同这是个cache丢失一样。

TCP_NEGATIVE_HIT
在对原始服务器的请求导致HTTP错误时,Squid也会cache这个响应。在短时间内对这些资源的重复请求,导致了否命中。 negative_ttl指令控制这些错误被cache的时间数量。请注意这些错误只在内存cache,不会写往磁盘。下列HTTP状态码可能导致否定 cache(也遵循于其他约束): 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。

TCP_MEM_HIT
Squid在内存cache里发现请求资源的有效拷贝,并将其立即发送到客户端。注意这点并非精确的呈现了所有从内存服务的响应。例如,某些cache在内存里,但要求确认的响应,会以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式记录。

TCP_DENIED
因为http_access或http_reply_access规则,客户端的请求被拒绝了。注意被http_access拒绝的请求在第9域的值是NONE/-,然而被http_reply_access拒绝的请求,在相应地方有一个有效值。

TCP_OFFLINE_HIT
当offline_mode激活时,Squid对任何cache响应返回cache命中,而不用考虑它的新鲜程度。

TCP_REDIRECT
重定向程序告诉Squid产生一个HTTP重定向到新的URI(见11.1节)。正常的,Squid不会记录这些重定向。假如要这样做,必须在编译squid前,手工定义LOG_TCP_REDIRECTS预处理指令。

NONE
无分类的结果用于特定错误,例如无效主机名。


相应于ICP查询,下列标签可能出现在access.log文件的第四域。

UDP_HIT
Squid在cache里发现请求资源的貌似新鲜的拷贝。

UDP_MISS
Squid没有在cache里发现请求资源的貌似新鲜的拷贝。假如同一目标通过HTTP请求,就可能是个cache丢失。请对比UDP_MISS_NOFETCH。

UDP_MISS_NOFETCH
跟UDP_MISS类似,不同的是这里也指示了Squid不愿去处理相应的HTTP请求。假如使用了-Y命令行选项,Squid在启动并编译其内存索引时,会返回这个标签而不是UDP_MISS。

UDP_DENIED
因为icp_access规则,ICP查询被拒绝。假如超过95% 的到某客户端的ICP响应是UDP_DENIED,并且客户端数据库激活了(见附录A),Squid在1小时内,停止发送任何ICP响应到该客户端。若这点发生,你也可在cache.log里见到一个警告。

UDP_INVALID
Squid接受到无效查询(例如截断的消息、无效协议版本、URI里的空格等)。Squid发送UDP_INVALID响应到客户端







Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn