安装
selinux 关闭,执行setenforce 0 并修改配置文件
For RHEL 6 and compatible distributions, use:
rpm --nosignature -i
yum install varnish
存储方式选择
-
选择存储方式的时候,如果内存足够大的话,最好选择malloc,这样可以让缓存全部或是大部分保存在内存中.
如果需要缓存的数据超过可用物理内存,可以选择file存储方式.
修改/etc/sysconfig/varnish ,VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"
修改配置文件(略)
检查VCL配置是否正确:
# /etc/init.d/varnish configtest
1、命中率低
用varnishstat 看状态
Hitrate ratio: 10 100 101
Hitrate avg: 0.4958 0.5712 0.5712
Hitrate ratio由三个数字组成,第一个数字范围0-10,第二个数字范围0-100,第三个数字范围0-1000。分别表示过去N秒内的Hitrate avg。上图由于我是刚打开varnishstat,因此三个数字都是4,表示过去4秒内的平均hitrate,如果打开的时间足够长,以上三个数字就会逐渐变成10,100,1000。
Hitrate avg里的内容是命中率,需要乘以100转换成百分比,
15289020 . . n_lru_nuked - N LRU nuked objects
N LRU nuked objects
由于cache空间满而不得不扔掉的cache条目,如果这个数字是0,就没必要增加cache的大小了。
第一列为总数值,第二列为每秒中的数值,第三列自命令(varnishstat)启动以来的平均值,第四列是描述
2、varnishlog命令查看日志
varnishlog -i txurl 命令去查看是哪些URL导致回源的
varnishtop 显示客户端最频繁请求的URL的持续更新列表:
# varnishtop -i RxURL
3、telnet到Varnish的管理端口,输入"param.show"可以看到所有系统运行中的参数.输入"param.set thread_pools 8"可以调整参数
首先查看以下4个参数:
thread_pools 4 [pools]
thread_pool_min 50 [threads]
thread_pool_max 5120 [threads]
thread_pool_timeout 10 [seconds]
listen_depth 1024 [connections]
thread_pools:用来设置线程池的数量。一般不需要调整
thread_pool_min:用来设置每个pool的最小thread数。pool接收到可用的请求后,就会将请求分配给空闲的thread来处理。
thread_pool_max:表示所有pool对应的thread数总和的最大值。此值不能太大,设置为系统峰值的90%左右即可,设置过大会导致进程被挂起。
thread_pool_timeout:表示thread的超时过期时间。当thread数大于thread_pool_min设定值时,如果thread空闲超过thread_pool_timeout设定的时间,thread就会被释放掉。
listen_depth:这个参数用于设置TCP连接队列的长度,将其设置得大一些可以提高并发处理的能力。
阅读(3464) | 评论(0) | 转发(0) |