目前我们有一个基于各种获取参数创建XML页面的服务。 随着参数数量的增加,不同组合的数量也在增加,这意味着我们的清漆缓存中的命中率已经下降。 我们已经增加了TTL,因此命中率有所增加,但是我正在玩弄以下想法:边缘限制包含在一页内?
我刚刚遇到了Edge Side Includes,并且正在想.. 如果我生成的XML页面包含50元素,我可以生成一个包含50个ESI(s)的页面,然后将这些清漆合并成一个文档?
为什么选择50个ESI元素?由于每个XML元素本身都很容易被一个URL缓存,但是这些过滤器的组合会导致生成大量不同的完整XML文档。因此,即使有一个请求过滤掉了前10个XML元素(因为它们没有向get params确认),因为使用ESIs,每个元素都将从缓存中获取。
这将在服务器上有多沉重?这样做有意义吗? ESI是非常昂贵的,在这种情况下,它是没有意义的。
更新
首先,我们从来没有用完的内存和核弹是零。我们目前的命中率为0,4,时间为4小时,这在我看来是糟糕的...由于所有这些组合(国家,地区等)。更糟糕的是,tomcat的使用率已经达到100%,而清漆停留在研究的1-3%。我的直觉告诉我们,用清漆缝合ESI,记住这些子文档将更好地保护tomcat并提高我们的容量。我们从来不需要奇怪地使用Nuke项目,这意味着在高速缓存条目到期之前永远不会填满〜1GB高速缓存。我确定如果我们缓存每个子文档,我们可能会达到内存限制,并开始nuking项目...但不清漆使用某种最近最少使用的算法?
你可能会发现你正在寻找从http://stackoverflow.com/questions/5960598/varnish-and-esi-how-is-the-performance – Ketola
叶,那正是那种事情的答案我正在寻找。谢谢! –