|
|
51CTO旗下网站
|
|
移动端

2.5.2 查看Varnish缓存效果与状态

《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》第2章高性能HTTP加速器Varnish,本章主要介绍Varnish的配置管理和使用技巧。Varnish是一个开源的反向代理软件和HTTP加速器,与传统的Squid相比,Varnish具有性能更高、速度更快、管理更方便等诸多优点,很多大型的运营网站都开始尝试用Varnish来替换Squid,这些都促使Varnish迅速发展起来。本节为大家介绍Varnish缓存效果与状态。

作者:高俊峰来源:机械工业出版社|2012-02-03 09:01

2.5.2 查看Varnish缓存效果与状态

可以通过浏览器访问对应的网页来查看Varnish缓存的效果。如果Varnish缓存成功,第二次打开网页的速度会明显比第一次快,但是这种方式并不能够充分说明问题。下面用命令行方式,通过查看网页头来查看命中情况。

  1. [root@varnish-server ~]# curl -I http://www.ixdba.net/a/mz/2010/0421/11.html  
  2. HTTP/1.1 200 OK  
  3. Server: Apache/2.2.14 (Unix) PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1  
  4. Last-Modified: Sat, 10 Jul 2010 11:25:15 GMT  
  5. ETag: "5e850b-616d-48b06c6031cc0"  
  6. Content-Type: text/html  
  7. Content-Length: 24941  
  8. Date: Fri, 09 Jul 2010 08:29:16 GMT  
  9. X-Varnish: 1364285597  
  10. Age: 0  
  11. Via: 1.1 varnish  
  12. Connection: keep-alive  
  13. X-Cache: MISS from www.ixdba.net  #这里的“MISS”表示此次访问没有从缓存读取 
再次打开这个页面,查看网页的头信息。
  1. [root@varnish-server ~]# curl -I http://www.ixdba.net/a/mz/2010/0421/11.html  
  2. HTTP/1.1 200 OK  
  3. Server: Apache/2.2.14 (Unix) PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1  
  4. Last-Modified: Sat, 10 Jul 2010 11:25:15 GMT  
  5. ETag: "5e850b-616d-48b06c6031cc0"  
  6. Content-Type: text/html  
  7. Content-Length: 24941  
  8. Date: Fri, 09 Jul 2010 08:30:35 GMT  
  9. X-Varnish: 1364398612 1364285597  
  10. Age: 79  
  11. Via: 1.1 varnish  
  12. Connection: keep-alive  
  13. X-Cache: HIT from www.ixdba.net     #由“HIT”可知,第二次访问此页面时,从缓存中读取内容,也就是缓存命中 

缓存命中率的高低直接说明了Varnish的运行状态和效果,较高的缓存命中率说明Varnish运行状态良好,Web服务器的性能也会提高很多;反之,过低的缓存命中率说明Varnish的配置可能存在问题,需要进行调整。因此,从整体上了解Varnish的命中率和缓存状态,对于优化和调整Varnish至关重要。

Varnish提供了一个varnishstat命令,通过它可以获得很多重要的信息。

下面是一个Varnish系统的缓存状态:

  1. [root@varnish-server ~]#/usr/local/varnish/bin/varnishstat  -n /data/varnish/cache  
  2. Hitrate ratio:       10      100      113  
  3. Hitrate avg:     0.9999   0.9964   0.9964  
  4.  
  5.        9990        68.92        49.70 Client connections accepted  
  6.      121820       953.84       606.07 Client requests received  
  7.      112801       919.88       561.20 Cache hits  
  8.          68         0.00         0.34 Cache misses  
  9.        2688        33.96        13.37 Backend conn. success  
  10.        6336         1.00        31.52 Backend conn. reuses  
  11.        2642        33.96        13.14 Backend conn. was closed  
  12.        8978        29.96        44.67 Backend conn. recycles  
  13.        6389         1.00        31.79 Fetch with Length  
  14.        2630        32.96        13.08 Fetch chunked  
  15.         444          .            .   N struct sess_mem  
  16.          23          .            .   N struct sess  
  17.          64          .            .   N struct object  
  18.          78          .            .   N struct objectcore  
  19.          78          .            .   N struct objecthead  
  20.         132          .            .   N struct smf  
  21.           2          .            .   N small free smf  
  22.           3          .            .   N large free smf  
  23.           6          .            .   N struct vbe_conn  
  24.          14          .            .   N worker threads  
  25.          68         1.00         0.34 N worker threads created  
  26.           0         0.00         0.00 N queued work requests  
  27.        1201        11.99         5.98 N overflowed work requests  
  28.           1          .            .   N backends  
  29.           4          .            .   N expired objects  
  30.        3701          .            .   N LRU moved objects  
  31.      118109       942.85       587.61 Objects sent with write  
  32.        9985        71.91        49.68 Total Sessions  
  33.      121820       953.84       606.07 Total Requests 

这里需要注意以下几点:

“Client connections accepted”表示客户端向反向代理服务器成功发送HTTP请求的总数量。

“Client requests received”表示到现在为止,浏览器向反向代理服务器发送HTTP请求的累计次数。由于可能会使用长连接,因此这个值一般会大于“Client connections accepted”的值。

“Cache hits”表示反向代理服务器在缓存区中查找并且命中缓存的次数。

“Cache misses”表示直接访问后端主机的请求数量,也就是非命中数。

“N struct object”表示当前被缓存的数量。

“N expired objects”表示过期的缓存内容数量。

“N LRU moved objects”表示被淘汰的缓存内容个数。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

228人订阅学习

Java EE速成指南

Java EE速成指南

掌握Java核心
共30章 | 51CTO王波

87人订阅学习

Mysql DBA修炼之路

Mysql DBA修炼之路

MySQL入门到高阶
共24章 | 51CTO叶老师

483人订阅学习

读 书 +更多

Scrum敏捷项目管理

本书详细描述如何在复杂技术项目中使用Scrum,并结合真实的Scrum案例及专家洞识,在简明及高度概括的理论之上更侧重于实践,并不断强调Scru...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客