gpt4 book ai didi

varnish - Varnish hit-for-pass 是什么意思?

转载 作者:行者123 更新时间:2023-12-03 01:27:08 26 4
gpt4 key购买 nike

Varnish 版本 3 有一些用于不同操作的对象。

例如,当需要从后端检索数据时使用 pass,当在缓存中找到请求内容时使用 hit。

但我无法理解 hit-for-pass 的用法。 Varnish什么时候使用它?我在网上没有找到任何有用的 Material 可以清楚地说明这一点。

最佳答案

创建 hit_for_pass 对象是为了优化针对后端服务器的获取过程。

对于普通的缓存未命中,Varnish 会将请求同一缓存对象的所有客户端排队,并向后端发送单个请求。这通常是最快的,让后端处理单个请求,而不是同时处理 n 个请求。

请记住,某些后端需要花费大量时间来准备对象; 10秒并不罕见。如果这是首页 HTML 并且您有 3000 个请求/秒,那么仅发送一个后端请求就很有意义。

当 Varnish 获取对象后发现无法缓存该对象时,就会出现问题。造成这种情况的原因可能是后端发送“Cache-Control: max-age=0”,或者(更常见的是)Set-Cookie header 。在这种情况下,您有 3,000 到 30,000 个客户端(3k req/s * 10sec)在队列中闲置,并且对于这些客户端中的每一个,必须完成相同的缓慢的一次一个后端请求才能为它们提供服务。这会破坏您的网站响应时间。

因此,Varnish 通过创建 hit_for_pass 对象来保存此请求无法缓存的决定。

在下次请求同一 URL 时,缓存查找将返回 hit_for_pass 对象。这表明可以同时进行多次提取。你的后端可能对此不太高兴,但至少 Varnish 不会无缘无故地让客户端排队。

关于varnish - Varnish hit-for-pass 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12691489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com