HAProxy 的 MySQL 连接泛滥

HAProxy 的 MySQL 连接泛滥

我设置了 2 个 HAProxy 服务器,使用 KeepAlived 进程进行故障转移,每个 HAProxy 都配置为将 mysql 连接负载平衡到我的 3 个节点的 MariaDB Galera 集群。我正在尝试对我的环境进行负载测试,在将流量推送到我的某个节点之前,我正在查看 netstat -an | grep 3306,这是我在第一个节点上看到的内容:

ubuntu@mariadb1:~$ netstat -an |grep 3306
tcp    0      0 0.0.0.0:3306           0.0.0.0:*               LISTEN
tcp    0      0 10.60.61.21:3306       10.60.61.19:44563       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44521       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44536       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58622       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58637       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58649       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44533       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44557       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58616       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58628       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58619       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58646       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58625       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58631       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44551       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58652       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44524       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58658       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44545       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58655       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58640       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58634       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44539       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44554       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44527       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58661       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44518       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44548       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44560       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.19:44530       TIME_WAIT
tcp    0      0 10.60.61.21:3306       10.60.61.20:58643       TIME_WAIT

我想知道为什么 HAProxy 在生成任何流量之前就填满了 3306 上的连接。我原本以为主 HAProxy 必须至少有一个连接在运行,这样它才能传递流量,但不能同时运行两个 HAProxy,也不能有这么多并发连接。请告诉我需要注意什么来调整这一点,或者只是接受这是 HA 设置的正常行为。

以下是我的 mariaDB 机器的规格:

Ubuntu 12.04 8GB RAM 4 vCPU(每个节点都在 VMware 中运行)

如果您需要 /etc/mysql/my.cnf 文件,请告诉我,或者 /etc/haproxy/haproxy.cnf 文件。如果我的帖子看起来格式很糟糕,请见谅,我不知道如何让它看起来和你们其他人一样漂亮和干净。

答案1

Haproxy 会发出“心跳”来确保服务确实正常运行。这些信号可能非常频繁,应该确保快速故障转移。

所有这些连接都处于TIME_WAIT已关闭状态,等待操作系统清理。无需担心。

相关内容