19

有没有办法列出清漆缓存存储的内容?此外,最好以某种方式列出最频繁的缓存命中。

我找到了一种通过列出发送到后端的内容来查看最常见的缓存未命中的方法:

varnishtop -b -i TxURL

查看我的最高缓存命中 URL 是非常有用的。

编辑:我正在使用版本:varnish-3.0.3 修订版 9e6a70f

4

2 回答 2

22

我认为这可以帮助您:

您可以使用 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

于 2013-01-09T13:21:28.417 回答
3

Varnish 中不包含此功能,但您可以轻松添加一些脚本来执行此操作。

  • 您需要做的第一件事是将 varnishncsa 作为服务启动并将输出写入每日文件。
  • 然后至少添加到默认输出格式%{Varnish:hitmiss}x%U(参见varnishncsa doc
  • 最后,编写一些脚本来计算您的顶级 URL,例如如下所示:
# 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

并随时根据您的特定需求进行更新..

于 2013-01-09T13:30:53.773 回答