我们在 Amazon 的 Linux 上运行了 Varnish 3.0.2,它运行良好。大多数内容页面的 ttl 为 48 小时,而图像、PDF 等则更长。
这个周末我们关闭了后端进行一些维护,所以我在本周早些时候将 ttl 提高到 5 天。我原以为缓存中的任何内容都将继续提供最多 5 天,但令我们失望的是,我们varnishstat
今天早上进行了检查,发现缓存几乎完全是空的,清漆正在提供“找不到页面”消息。
我知道这不是 Varnish 的设计目的,但为什么它会在后端关闭时重置其缓存?下次我该如何预防?
2012-06-11 更新:查看 /var/log/messages 后,我每 3 小时左右看到一次:
Jun 9 03:56:31 idea-varnish varnishd[1128]: Manager got SIGINT
Jun 9 03:56:33 idea-varnish varnishd[6708]: Platform: Linux,3.2.18-1.26.6.amzn1.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
Jun 9 03:56:33 idea-varnish varnishd[6708]: child (6709) Started
Jun 9 03:56:33 idea-varnish varnishd[6708]: Child (6709) said Child starts
我猜这是服务器崩溃并擦除内存中的所有对象。我刚刚安装了 -debuginfo rpm,但不确定它是否会显示更多信息。
我想我们可以在计划停机期间切换回基于磁盘的存储吗?还是像这样的崩溃会擦掉那个?
清漆过程是否可能重新启动?varnishstat 中有一个正常运行时间计数器。在某些情况下,清漆工作线程可能会终止,但会立即重新启动。当一切正常时,这可能会被忽视,但是(计划中的)后端停机时间可能会非常不方便。