有没有一种方法可以列出varnish缓存存储的内容?另外,以某种方式列出最常见的缓存命中会很好。我找到了一种方法来查看最常见的缓存未命中,即通过列出发送到后端的内容:
varnishtop -b -i TxURL
能够查看我顶级缓存命中的URL将非常有用。
编辑:我正在使用版本:varnish-3.0.3修订版9e6a70f
varnishtop -b -i TxURL
能够查看我顶级缓存命中的URL将非常有用。
编辑:我正在使用版本:varnish-3.0.3修订版9e6a70f
我认为你可以使用varnishncsa的参数"Varnish:hitmiss"来帮助解决问题。
首先,使用以下命令捕获日志样本:
varnishncsa -F '%U%q %{Varnish:hitmiss}x' -n NAME -w /path/requests.logs
然后,运行以下命令:
sort -k 1 /path/requests.logs | uniq -c | sort -k 1 -n -r | head -25
这个功能没有包含在Varnish中,但是您可以很容易地添加一些脚本来实现。
%{Varnish:hitmiss}x
和%U
添加到默认输出格式(请参见varnishncsa 文档)# we admit %{Varnish:hitmiss}x is the first column and %U the second awk '$0 ~ / hit / { arr[$8]=arr[$8]+1 }END{ for(k in arr) { print arr[k]";"k } }' varnishncsa.log|sort -k 1 -nr |head
随意根据您的特定需求进行更新。