Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 高流量中的高DB连接_Mysql_Apache_Caching_Varnish_Varnish Vcl - Fatal编程技术网

Mysql 高流量中的高DB连接

Mysql 高流量中的高DB连接,mysql,apache,caching,varnish,varnish-vcl,Mysql,Apache,Caching,Varnish,Varnish Vcl,我们正在运行一个API,该API在某些时间段有时会遇到非常繁忙的流量。在使用varnishstat的正常情况下,我们可以看到需要0个后端连接。我们将其解释为能够成功地为缓存中的所有数据提供服务 当流量峰值时,我们会看到后端连接激增,这反过来会打开数据库连接,导致数据库资源峰值。在交通繁忙的时候,清漆似乎被绕过了 我们调整了MySQL中的max_连接设置,并调整了两个varnish配置文件。我们使用4个线程池运行,最小线程数为200,最大线程数为4000。我们为varnish分配了大量内存(15G

我们正在运行一个API,该API在某些时间段有时会遇到非常繁忙的流量。在使用varnishstat的正常情况下,我们可以看到需要0个后端连接。我们将其解释为能够成功地为缓存中的所有数据提供服务

当流量峰值时,我们会看到后端连接激增,这反过来会打开数据库连接,导致数据库资源峰值。在交通繁忙的时候,清漆似乎被绕过了

我们调整了MySQL中的max_连接设置,并调整了两个varnish配置文件。我们使用4个线程池运行,最小线程数为200,最大线程数为4000。我们为varnish分配了大量内存(15GB中有8GB)

问题是,为什么后端连接的流量如此之大?这当然是清漆应该防止的。我假设我们在配置中出现了一些错误,但在如何更新以防止如此多的请求在高流量中绕过varnish方面找不到帮助


感谢您的帮助

大多数情况下,后端连接与您的varnish配置关系不大,但与您站点的可访问性关系很大

  • 是否存在阻止您高效缓存的cookie?您可以选择剥离它们或移除除所选之外的所有对象,varnish站点上有这两个示例
  • 做一个varnishstat,在峰值期间检查你的命中率。这是一个好的缓存命中率吗?是否与低负荷时相同?如果在低负载时相同或更高,则可以随时进行改进
  • 执行
    varnishtop-i txurl
    查看哪些请求最常发送到后端服务器。也许是一些URL由于错误的标题而没有被缓存?也许有些页面可以缓存更长的时间?也许页面的某些部分可以用ESI缓存
  • 确保您的清漆在峰值期间不会破碎(留下空缓存)。您可以通过
    cat系统日志| grep“varnish”

假设您使用的是3.0,您已经设置了最多16000个线程的清漆。这是非常重要的。为每个并发连接配置一个工作线程。我还建议添加一些监视。Munin使用起来很简单,它有一个很好的清漆插件。