reverse-proxy - Varnish :性能影响大禁止列表

标签 reverse-proxy varnish

我们想知道是否有人在 Varnish 中遇到过大量禁令。我们考虑了一种禁止策略,它可能会导致每晚(对 X 百万个缓存对象)进行数百次(智能)禁止。

虽然我知道这高度依赖于环境变量,但我们想知道这是否会对性能产生重大影响。

最佳答案

禁令会占用大量 CPU,因此应注意不要过度使用它们。如果这样做,CPU 使用率将上升,您会注意到每秒将执行大量正则表达式匹配。

一般来说,一个禁令将与内存中的每个对象在进入时匹配,因此每个禁令拥有一百万个对象将导致一百万个禁令评估。这听起来可能很多,但现代服务器速度很快,如今现代服务器每秒能够进行数千万次正则表达式匹配。我四岁的笔记本电脑在单核上每秒运行 1500 万次正则表达式匹配,只是为了让您了解规模。

此外,Varnish 的另一个功能也在发挥作用。禁令潜伏者。禁止潜伏者是一个线程,它遍历缓存并在请求之前评估试图杀死对象的禁止,从而减少禁止列表的大小。如果您的禁令不使用 req 对象,则它们是潜伏者评估的候选对象。如果您打算使用一些禁令,则应注意以潜伏者友好的方式编写禁令。所谓的“智能禁令”,您似乎很熟悉。

总而言之,我认为您的设置听起来很理智。发布几百个智能禁令,缓存中有几百万个对象可能会正常工作。当部署禁令时,当然会有一些 CPU 负载,TTFB 会有所增加,但我认为你会没事的。您可能想玩一些控制禁止潜伏者如何工作的参数,但首先尝试默认设置,它们非常合理。

关于reverse-proxy - Varnish :性能影响大禁止列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21857057/

相关文章:

haskell - Haskell Servant 的部分反向代理

java - 如何在 Apache 反向代理后面的子目录上设置 Play?

c - vcl_fetch 中的 if 语句不起作用

django - 帮助我配置nginx-varnish-uwsgi-django

apache - 使用Apache作为反向代理访问子域下的Plex

ssl - Nginx 代理通行证不适用于 SSL

nginx - 启用 SELinux 后 proxy_pass 不起作用,为什么?

magento - 电子商务中的 Varnish

php - ESI 是阻塞的还是非阻塞的?

apache - 如何使用多个apache虚拟主机设置varnish 4.1.2?