2013-07-05 22 views
0

我们正在运行一个API,有时在某些时段流量非常大。在正常情况下使用varnishstat我们可以看到0后端连接是必需的。我们将其解释为Varnish能够成功地从缓存中提供所有数据。高流量清漆高数据库连接

当流量高峰时,我们看到后端连接激增,反过来打开数据库连接导致数据库资源飙升。看起来清漆在高流量中被绕过。

我们调整了MySQL中的max_connections设置并调整了两个清漆配置文件。我们使用4个线程池运行,最小200线程和最大4000线程。我们已经为清漆分配了大量内存(15GB中有8GB)。

问题是为什么后端连接会在流量上激增?这肯定是Varnish应该防止的。我假设我们在配置中出现了问题,但无法找到我们可以更新的帮助,以防止如此多的请求绕过高流量中的清漆。

任何帮助表示赞赏

+0

假设你在3.0上,你已经为最大16000个线程设置了Varnish。这是很重要的。为每个并发连接配置1个工作线程的清漆。 – lkarsten

回答

1

晴扣球后端连接有一点做与你的漆配置,但很多做网站的缓冲能力。

  • 有没有可以防止高效缓存的cookie?您可以选择去除它们或去除除了选定的所有部分之外的所有部分,清漆网站上都有示例。
  • 做一个清漆,并检查你的命中率在峰值。它是一个很好的缓存命中率?是否与低负载时相同?如果在低负载情况下相同或更高,则可以随时对其进行改进。
  • 执行varnishtop -i txurl查看最常发送到后端服务器的请求。也许这是一些网址,由于错误的头文件而没有被缓存?也许有些页面可以被缓存更长时间?也许可以使用ESI缓存页面的某些部分?
  • 确保您的清漆在峰值期间不会崩溃(使其保留空缓存)。你可以看到崩溃信息cat syslog | grep "varnish"
+0

我也建议添加一些监控。 Munin很简单,它有一个很好的清漆插件。 – lkarsten