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"