我们正在运行一个API,在某些时段有时会遇到非常繁忙的流量。在正常情况下使用varnishstat我们可以看到需要0个后端连接。我们将此解释为Varnish能够成功地从缓存中提供所有数据。
当流量激增时,我们会看到后端连接激增,从而打开数据库连接,导致数据库资源激增。看起来Varnish在高流量时被绕过了。
我们调整了MySQL中的max_connections设置并调整了两个varnish配置文件。我们运行4个线程池,最少200个线程,最多4000个。我们已经为varnish分配了大量内存(15GB中有8GB)。
问题是为什么后端连接会因流量而飙升?这肯定是Varnish应该阻止的。我假设我们在配置中出了问题,但无法找到有关我们可以更新的内容的帮助,以防止在高流量时绕过清漆这么多请求。
感谢任何帮助
答案 0 :(得分:1)
大部分尖端后端连接与您的清漆配置关系不大,但与您网站的可配置性有很大关系。
varnishtop -i txurl
以查看最频繁发送到后端服务器的请求。也许是因为错误的标题而没有缓存的一些URL?也许某些页面可以缓存更长时间?也许可以使用ESI缓存页面的某些部分?cat syslog | grep "varnish"