HAProxy 统计页面后端队列值的解释

HAProxy 统计页面后端队列值的解释

如下图所示,我有一个 HAProxy 后端,其中有 2 台服务器,其设置如下:

maxconn 64 check inter 5s fastinter 2s downinter 2s

在此处输入图片描述

我的问题与Queue列有关。我如何指定后端队列的限制?为什么底部Backend分别显示和的值?在我11的例子中,数字代表什么?api-1api-2221811

答案1

问题 1/
正如 Willy 在此帖中提到的:https://www.mail-archive.com/[电子邮件保护]/msg21521.html,您不能为后端指定 maxqueue,但您可以为后端的服务器指定 maxqueue。

首先让我们明确一下队列:每个后端都有一个队列,每个服务器都有一个队列。具有服务器持久性的连接将进入服务器(相关)队列,其他连接将进入后端队列。

当服务器达到 maxqueue 时,HAProxy 文档http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#5.2-maxqueue

如果达到此限制,下一个请求将被重新分派到其他服务器,而不是无限期地等待服务。这将破坏持久性,但可能允许人们在他们尝试连接的服务器即将崩溃时快速重新登录。

因此在这种情况下下一个请求不会丢失。

如果达到了假定的后端最大队列数,情况就会有所不同,客户端可能会收到错误。因此,为了避免这种情况,没有后端最大队列实现,但您仍然可以使用后端中的规则来实现相同的行为,如下所示:

backend foo
      tcp-request content reject if { queue ge 100 }

问题2/
Max Queue 列显示自上次 HAProxy 重新加载以来达到的最大队列大小。
因此 11 是后端达到的最大队列大小。这与服务器的最大队列大小不同,因为如前所述,后端队列和服务器队列是分开的。

相关内容