我在使用 Varnish 且仅使用 Varnish 的服务器上遇到内存问题(那里没有其他应用程序)。每台计算机都有64GB RAM可用于缓存,并具有针对不同后端的三种独立的 Varnish 服务。当前,所有服务器上分配给 Varnish 的RAM总和为每台服务器24GB RAM。我想将此值增加到最大48GB(可用内存的75%),但是我遇到了一些问题。
当我尝试为一项服务分配更多的8GB(全部为32GB)时,已提交的内存达到70GB RAM(?)的峰值。更重要的是,增加的服务在将100%的内存分配给其限制后已重新启动了几次(错误消息:子代未响应CLI,杀死它/死了signal = 6/Panic消息:在vbf_fetch_thread()中断言错误)。另外,服务使用了大量的VSZ(虚拟内存大小),那还好吗?
最佳答案
这可能是临时内存,默认情况下是无上限的,我们将使用malloc作为存储。
在Transinet装卸工中,Varnish会存储TTL <10s的对象,因此,如果您看到的对象很多,则将其存储。
解决方案是增加TTL或限制 transient 存储。
关于 Varnish 内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58749757/