tidb集群负载均衡不平均,会全部往一台机器上负载,如何调整参数能分摊呢?

tidb集群负载均衡不平均,会全部往一台机器上负载,如何调整参数能分摊呢?
集群架构是:3pd、3tidb、3tikv、1tiflash 生产环境使用过程中,突然所有量都分发到第三台机器上,cpu一下子上去90%左右,其他两台服务器cpu倒是正常的,3个tikv全部直接自动重启了,还是说在配置连接数据库的代码配置文件里应该设置3个tidb的端口才能分摊开来负载量?

我们使用的是haproxy来进行tidb负载均衡
文档:https://docs.pingcap.com/zh/tidb/dev/haproxy-best-practices#haproxy-在-tidb-中的最佳实践

刚开始插入数据,数据还在预热阶段。负载可能不均衡

就是搞了个2000个登录号上去,直接给三个tikv搞重启了、cpu也上去了,不知道楼上大佬说的配置 haproxy行不行,我搭建个试试

我试试看下效果

TiDB 高并发写入场景最佳实践 热点问题的规避方法

https://docs.pingcap.com/zh/tidb/stable/high-concurrency-best-practices#热点问题的规避方法

1 个赞

有云环境还可以搞个SLB。 硬件的F5 ,

硬件都不一定完全实现负载均衡。软件的话别追求完全负载均衡。

nginx使用轮询调度都可以实现计算节点连接均衡

你是混合部署了吧?我看你只有三台服务器,部署了3pd、3tidb、3tikv、1tiflash这些节点?

何为混合部署呢?

你每个服务器上都部署了哪些节点?

调整 TiDB 负载均衡设置:TiDB 具有内置的负载均衡设置,可以帮助在可用节点之间分配负载。 您可以通过修改每个 TiDB 节点的 config.toml 配置文件来调整这些设置。 具体来说,您可以调整max-connection-count和server.max-batch-size参数来控制客户端连接数和每个节点处理的数据批次的大小。

调整 TiKV 负载均衡设置:TiKV 也有内置的负载均衡设置,可以帮助在可用节点之间分配负载。 您可以通过修改每个 TiKV 节点的 tikv.toml 配置文件来调整这些设置。 具体来说,可以调整readpool.coprocessor.xxx参数来控制并发协处理器的数量和每个节点的队列大小。

监控集群指标:您可以使用 Prometheus 或 Grafana 等监控工具来监控集群指标并识别任何不平衡或瓶颈。 具体来说,您可以监控每个节点的 CPU 和内存使用情况、磁盘 I/O、网络流量和其他关键指标,以确定哪些节点的负载最大。

考虑扩展集群:如果调整负载平衡设置和参数不能解决问题,您可能需要考虑通过添加更多节点或增加现有节点的资源来扩展集群。 您可以使用 TiUP 等工具来管理缩放过程并确保它安全高效地完成。

除了这些步骤之外,您可能还想调查为什么所有流量突然转移到一台机器并导致 CPU 飙升。 这可能是由于多种因素造成的,例如网络问题、软件错误或流量意外激增。 调查问题的原因可以帮助您防止将来再次发生。

感觉可能是TiKV的热点导致的,你看下是不是表结构设计不合理,查询都落到少数region上?

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。