Varnish的管理和调试.

Varnish的管理和调试.

管理和监控file配置管理commandthread工作

原贴:http://joyleley.spaces.live.com/blog/cns!E162F872A7449BAC!151.entry

(一)配置管理端口
    启动Varnish的时候,需要运行varnishd命令:
        ./sbin/varnishd
        -n vcache /                                            #临时文件实例名.如果以"/"开头,就必须是一个可用的路径.
        -a :80 /                                                 #服务所在端口.":80"是默认所有网络都建立80端口,":"前面是服务器IP.
        -T :5000 /                                              #管理端口.
        -s file,/data1/vcache,80g /                        #虚拟内存文件映射类型,路径以及容量. 包括两种类型"malloc"和"file"
        -s file,/data2/vcache,80g /                        #malloc是内存+swap交换模式.很简单.没得说.
        -s file,/data3/vcache,80g /                        #file是mmap的文件内存映射机制.(具体情况,参阅"mmap"函数说明)
        -s file,/data4/vcache,80g /
        -f /usr/local/varnish/etc/varnish.vcl /           #VCL文件路径.
        -P /var/run/varnish.pid /                            #PID文件地址.
        -w 100,2000,10 /                                     #工作进程数.三个参数分别是:<min>,<max>,<timeout>
        -h classic,16383 /                                    #hash列表类型,以及长度.默认长度是16383.具体用处和调整实际效果要等我看完源代码才知道.
        -p user=www-data /                                 #"-p"是变量配置参数
        -p group=www-data /                               #服务运行用户和用户组配置.
        -p thread_pools=8 /                                  #进程connections pools的个数,数量越多,越耗用cpu和mem,但是处理并发能力越强.
                                                                     #系统手册上说,一个cpu用一个.但是,我觉得,如果机器性能足够好,每个cpu分2个也不为过.
        -p listen_depth=1024 /                              #TCP队列长度.默认是512. 
 
         ;
 
(二)链接管理端口
    管理端口有两种链接方式:
         1,telnet方式,可以通过telnet来连接管理端口.如:"telnet localhost 5000"
         2,varnishadm方式,可以通过varnish自带的管理程序传递命令.如:"./bin/varnishadm -n vcache -T localhost:5000 help"
 
(三)用管理端口管理和监控Varnish的运行情况
    #>telnet localhost 5000
    help [command]                                              #帮助,后面可以跟你需要得到帮助说明的命令.
    ping [timestamp]                                             #
    status                                                           #服务运行状态.不太明白,好像只能得到"Child in state running"
    start                                                             #启动服务.(用控制端口就可以启动和关闭Varnish服务)
    stop                                                              #关闭服务.
    stats                                                             #服务的全部状态.(这个很有用.很多管理功能都是基于这个做的.)
   vcl.load <configname> <filename>                      #vcl配置文件的相关操作.如果需要修改vcl文件,首先需要vcl.load一个配置,然后需要vcl.use这个配置.
    vcl.inline <configname> <quoted_VCLstring>          #后面的<configname>其实就是自己给load进来的VCL的名字,自己随便起一个不重复的就行了.
    vcl.use <configname>                                        
    vcl.discard <configname>                                   #用vcl.discard可以丢弃某个vcl文件.
    vcl.list                                                            #用vcl.list可以得到目前管理进程中载入的所有vcl文件列表.
    vcl.show <configname>                                     #用vcl.show可以查看某个vcl文件内容.
    param.show [-l] [<param>]                                #param.show可以显示程序运行参数."-l"选项可以得到参数的说明.
    param.set <param> <value>                               #param.set可以动态的更改某个参数.
    quit
    purge.url <regexp>
    purge.hash <regexp>
    purge.list
 
 (四)日志文件配置
    Varnish是通过内存共享的方式提供日志的.
    1, 可以通过自带的varnishlog得到详细的系统工作日志.如:"./bin/varnishlog -n vcache"
    2, 也可以通过varnishncsa得到apache的combined格式的日志.如:"./bin/varnishncsa -n vcache"
 
  •     "-f"参数可以用"X-Forwarded-For"来替换"client.ip".
  •     "-w"参数可以把日志写入指定的文件中.例如:"./bin/varnishncsa -n vcache -f -w logs/varnich.log"
  •    还可以用管道把日志导入"rotatelogs"中,实现日志翻滚.例如:"./bin/varnishncsa -n vcache -f|/usr/sbin/rotatelogs logs/Varnish.%Y.%m.%d.%H.%M.%S.log 60 480"

你可能感兴趣的:(Varnish的管理和调试.)