• varnishlog、Varnishstat详解


    Varnish将日志记录到共享内存片段,而不是记录到一个普通文件中。当记录到内存片段的最后处,会再从头开始记,覆写老数据。这比记录到文件要快的多,不需要磁盘空间。
    Varnishlog是一个用来查看Varnish日志的程序
    1:启动varnishlog,会看到主进程的基本信息
    2:然后重新刷新浏览器访问页面,会看到访问的日志信息
    3:格式说明:

    • 第一列可以是任意的数字,它代表具体的请求。数字相同,表示他们是同属于一个HTTP事务的。
    • 第二列是日志信息的标签。所有的日志条目都是用一个标签去标记,该标签代表何种行为被记录。以Rx开头的标签代表varnish正在接受数据,Tx代表正在发送数据。
    • 第三列表示数据的是来自或者要发送给客户(c),另外,还有为b的情况,代表数据来自或要发送给后端(b)。第四列是被记录的数据。

    日志过滤指令:可以使用varnishlog去过滤,基本的选项如下:

    -b 只显示varnish和后端服务器之间通信的记录条。当你想优化缓存命中率的时候,非常有用。 

    ./varnishlog -b

    -I 通过正则表达式过滤数据,并显示匹配行。”varnishlog –c –I RxHeader –I Cookie”,将显示所有来自客户端的cookie头信息。

    -k num 只显示开头的num个日志记录

    -w 、-r 

    输出日志到一个文件:
    $ varnishlog -w /var/log/varnish.log
    读取一个日志文件,然后显示首页的请求
    $ varnishlog -r /var/log/varnish.log -c -m 'RxURL:^/$'

    自定义日志

    varnish里内置了日志模块,可以在vcl文件最上边引用std库,以便输出日志:import std;
    然后在需要输出日志的地方,使用 std.log 即可。
    比如你想跟踪哪些连接没有命中缓存,可以在vcl_miss函数中这样写:

    sub vcl_miss {
      std.log("url miss! the url=" + req.url);
      return (fetch);
    }
    启动varnish 后,通过 varnishlog工具跟踪打印出的日志 varnishlog
    -I log

    客户端与varnish uncached log

     server与varnish uncached log

     客户端与varnish cached log

     

     Varnishstat统计信息

    Varnishstat工具显示一个运行的varnished实例的相关统计数据

    显示中每列的含义,从左到右:
    1:值 2:从最后一秒更新以来的每秒的一个平均值,或者一个不能计算的周期
    3:从进程开始到现在每秒的平均值,或者是一个不能计算的周期。
    4:描述
    当使用-1选项,输出列的含义,从左到右:
    1:特征名字 2:值
    3:从进程开始到现在每秒的平均值,或者是一个不能计算的周期。
    4:描述

  • 相关阅读:
    Sass安装与Webstorm File Watcher配置
    AngularJS ng-disabled在a内无效
    AngularJS 指令(Directivce )一
    Bus Hound 检测USB数据收发的教程
    STM32Cumebx HAL库实现STM32 USB虚拟串口的收发
    Docker学习笔记六:Docker搭建企业级私有仓库
    Docker学习笔记五:Docker生成jenkins容器,支持Java Web项目持续集成、持续部署
    Linux学习笔记一:Linux配置java环境变量
    Docker学习笔记四:Docker镜像、容器管理工具shipyard
    Redis学习笔记一:Redis安装
  • 原文地址:https://www.cnblogs.com/xiaoliangup/p/9220390.html
Copyright © 2020-2023  润新知