高性能的开源http加速器Varnish介绍(2)

八、Varnish是如何记录数据的?
Varnish一个比较显著的特点就是它如何记录数据的,varnish将所有的数据全部记录到内存当中,当内存全部使用以后,又从头开始记录,覆盖最旧的记录。因此,这样就可以很快的记录数据,而且也不占用磁盘空间。不过,一旦服务器宕机的话,则内存中所有的数据都会被释放。
 
九、varnishlog指令
Varnish提供了众多的工具来查看内存中的数据,在这里我只说varnishlog的应用
在命令行上执行varnishlog命令,显示结果如下:
  17 RxHeader    c Accept-Encoding: gzip, deflate
  17 RxHeader    c Host: 192.168.108.202:8080
  17 RxHeader    c Connection: Keep-Alive
  17 VCL_call    c recv
  17 VCL_return  c lookup
  17 VCL_call    c hash
  17 VCL_return  c hash
其中第一列是任意的数,它用来定义请求,相同的号码代表相同的HTTP传输。
第二列是信息标记,所有的日志都带有一个标记(tag),标记对应相对的操作。Rx表示varnish收到数据,Tx表示varnish发送数据。
第三列代表数据是从哪里传出或者传入的,是从c(client)还是b(backend)。
第四列是被记录的数据。
Varnishlog还有许多子选项:
-b:只显示varnish和backend server之间的日志,当您想要优化命中率的时候可以使用这个参数。
-c:和-b差不多,不过它代表的是varnish和client端的通信。
-i tag:只显示某个tag相关的信息,比如“varnishlog –iSessionOpen”将只显示新会话,注意,这个地方的tag名字是不区分大小写的。
-I:通过正则表达式过滤数据,比如“varnishlog -c -i RxHeader -I Cookie”将显示所有接到来自客户端的包含Cookie单词的头信息。

十、varnishstat指令
varnishstat的二进制程序是/usr/local/varnish/bin/varnishstat。缓存命中率的高低直接说明了varnish的运行状态和效果,较高的缓存命中率说明了varnish运行状态良好,web服务器的性能也会提高很多,反之,过低的缓存命中率说明varnish的配置可能存在问题,那么就需要进行调整,因此,从整体上了解varnish的命中率和缓存状态,对于优化和调整varnish至关重要。
使用/usr/local/varnish/bin/varnishstat命令可以查看Varnish的缓存状态信息。如:
# /usr/local/varnish/bin/varnishstat
Hitrate ratio:        1        1        1
Hitrate avg:    0.5294  0.5294  0.5294
 
          18        0.00        0.01 Client connections accepted
          17        0.00        0.01 Client requests received
          9        0.00        0.00 Cache hits
          8        0.00        0.00 Cache misses
          8        0.00        0.00 Backend conn. success
          8        0.00        0.00 Fetch with Length
          11          .            .  N struct sess_mem
          1          .            .  N struct objectcore
          1          .            .  N struct objecthead
          1          .            .  N struct smf
          1          .            .  N large free smf
          10          .            .  N worker threads
          10        0.00        0.00 N worker threads created
          1          .            .  N backends
          8          .            .  N expired objects
          8          .            .  N LRU moved objects
          10        0.00        0.00 Objects sent with write
          18        0.00        0.01 Total Sessions
          17        0.00        0.01 Total Requests
 
其中比较重要的参数有:
Client connections accepted:表示接受的连接数
Client requests received:表示接受的请求总数,如果使用了长连接,那么该值一般大于Client connections accepted值
Cache hits:表示命中的次数
Cache misses:表示非命中的次数
N struct objectcore:表示被缓存对象的数量
N expired objects:表示过期的缓存对象数量
N LRU moved objects:表示被淘汰的缓存对象数量

缓存服务器Varnish概念篇

缓存服务器Varnish概念篇

Varnish Cache 的架构笔记

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/23f8ee647de98ef4c6dd250cf723e742.html