如何记录未在 Varnish 上获得缓存命中的请求?

如何记录未在 Varnish 上获得缓存命中的请求?

在 Wordpress 上制作了一个新主题,新主题与旧主题非常相似,这意味着不应该有任何重大的 SQL 查询变化,可能更少,但网站很慢,似乎来自 varnish。

如何调试 varnish 以查看哪些查询未获得缓存命中?我怀疑是某个 ajax 调用,但有 100 个,所以我需要知道哪些 ajax 没有被缓存。你该怎么做?

答案1

有关调试 Varnish 的更多信息,请参阅以下 Varnish 开发者门户文章:https://www.varnish-software.com/developers/tutorials/troubleshooting-varnish/#varnish-is-not-caching

在您的特定情况下,我假设 AJAX 调用以 开头/ajax/。基于此假设,您可以使用以下varnishlog命令进行调试:

varnishlog -g request -q "(VCL_call eq 'MISS' or VCL_call eq 'PASS') and ReqUrl ~ '^/ajax/'"

此命令将列出缓存未命中和缓存绕过。区别在于未命中只是尚未发生的命中,而缓存经过将始终绕过缓存,并且永远不会导致缓存命中。

相关内容