我正在使用 MariaDB Galera Cluster (Master/Master),它有 5 个节点,规格如下
32Core
64GB Ram
Ubuntu 20.04
Personal Vm-Machines at own Datacenter
在这些节点之上,配置了 Haproxy,用于平衡数据库节点的请求负载
每个节点的最大连接数限制为 2000,但在某些情况下,单个节点上有超过 2000 个连接,我们无法追踪为什么/从哪里获得这么多的连接请求。有人可以指导我如何检查这个问题吗
谢谢
Galera 版本:4 MariabDB 10.5
答案1
使用命令行“mysql”连接。 SHOW PROCESSLIST
。它可能会显示 2000 行,其中几乎所有行都显示Sleep
。它还将提供连接来自的用户和主机。
听起来好像你在某处打开了“连接池”,也许是在 haproxy 中?
除了极少数生产系统外,2000 太高了,请解释一下这个数字。另一方面,我很久以前就见过 2GB 服务器上有 1000 个连接,所以我认为达到 2000 个连接不会有什么大问题——如果大多数都处于“睡眠”状态。
检查SHOW GLOBAL STATUS LIKE 'Threads_running';
如果超过 100,你可能有问题。这就是当您探测时有多少个节点处于非睡眠状态。