首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨多个服务器的共享清漆缓存

跨多个服务器的共享清漆缓存
EN

Stack Overflow用户
提问于 2014-10-21 19:53:48
回答 1查看 3.7K关注 0票数 5

我们有4台清漆服务器在负载均衡器后面。默认情况下,每个Varnish服务器都有自己的缓存。它们不共享缓存。这是一个问题,因为它需要一个特定页面的5-6页负载才能将其缓存在每个服务器中。

为了避免这个问题,我将Varnish存储从内存更改为文件。该文件存储在磁盘驱动器上,磁盘驱动器在所有Varnish服务器之间共享。所有Varnish服务器都能够正确启动,但不知怎么的,它们仍然在使用自己的缓存。我确实确认了这个缓存文件是由Varnish写入的。

知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-05 15:54:33

我知道这个问题很老,但供将来参考:

该文件后端使用mmap将对象存储在内存中,该内存由磁盘上的未链接文件支持。

(来自https://www.varnish-cache.org/docs/4.0/users-guide/storage-backends.html)

这里最重要的词是unlinked,这意味着文件一旦发生,就不再在进程之外可用。它仍然可以被保存在mmap上的句柄的创建过程使用。从unlink(2)手册页:

如果名称是文件的最后一个链接,但是任何进程仍然打开该文件,那么该文件将一直存在,直到引用它的最后一个文件描述符关闭为止。

因此,简单地说:不,同一个文件后端不能共享,此外,目前还没有已知的方法在几个清漆实例之间共享缓存本身(大多数现有技术涉及链接实例来复制缓存内容,但这是复制而不是共享)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26495145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档