清漆:性能影响大禁令清单

时间:2014-02-18 14:40:08

标签: reverse-proxy varnish

我们想知道是否有人在Varnish有大量禁令的经验。我们考虑一种禁令策略,每晚可以导致几百个(智能)禁令(在X百万个缓存对象上)。

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

1 个答案:

答案 0 :(得分:1)

禁令是CPU密集型的,因此应注意不要过度使用它们。如果这样做,CPU使用率会上升,你会发现每秒都会执行大量的正则表达式匹配。

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

另外还有Varnish的另一个功能。禁令潜伏者。禁令潜伏者是一个线程,它会遍历缓存并评估禁止在请求之前杀死对象的禁令,从而减少禁止列表的大小。如果您的禁令不使用req对象,则他们是潜伏者评估的候选人。如果你计划使用一些禁令,你应该注意以潜伏者友好的方式写你的禁令。所谓的“智能禁令”,你似乎很熟悉。

总而言之,我认为您的设置听起来很清醒。在缓存中发布几百个具有几百万个对象的智能禁令可能会正常工作。当部署禁令时会有一点CPU负载,并且TTFB会有所增加,但我认为你会好的。您可能希望使用控制禁用潜伏者工作方式的参数,但首先尝试默认值,它们非常清晰。