如何检查选择的 Varnish 缓存大小是否理想?

如何检查选择的 Varnish 缓存大小是否理想?

我已将 Varnish 缓存配置为使用 512 MB 的缓存大小,使用方法如下:

varnishd ... -s file,/var/cache/varnish.cache,512M

问题:

  • 我如何监控 512 MB 是否太小、太大或是可以接受?
  • 如何获取缓存的当前使用大小?
  • 如何查看由于缓存已满而从缓存中删除对象的频率?

答案1

我找到了解决方案:

您可以通过运行来监视 Varnish 已分配的最大缓存大小(在本例中为 512 MB)varnishstat。然后查找输出行“分配的字节数”和“可用字节数”。

存在以下关系:

Command line configuration of max size = [bytes allocated] + [bytes free]

根据“可用字节数”的大小,您可以微调缓存大小以找到合适的级别。

答案2

观察n_lru_nuked计数器。每次计数器增加时,Varnish 都会从缓存中丢弃一些内容,因为存储空间不足。

理想情况下,您根本不希望 LRU 计数器增加,因为将内容踢出缓存通常意味着必须重新获取它,但如果您的尾部很长,则无法避免 LRU。

答案3

除非您期望所有数据都适合缓存,否则我会查看缓存命中与缓存未命中的比率。您的收益会递减。将缓存加倍可能会使您的未命中率减半,当一半的请求未缓存时,这是一个很大的优势,但当 90% 的请求都未缓存时,优势就不大了。

相关内容