tidb新增节点,但是新节点分摊的QPS较老节点低30%,并没有负载均衡

一个好的问题描述有利于社区小伙伴更快帮你定位到问题,高效解决你的问题

【TiDB 使用环境】生产环境
【TiDB 版本】7.5.6
【部署方式】云上部署(什么云)/机器部署
【操作系统/CPU 架构/芯片详情】
【机器部署详情】CPU大小/内存大小/磁盘大小
【集群数据量】
【集群节点数】3pd/5tidb/5tikv
【问题复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】

tidb集群原先有3个tidb节点,CPU告警,扩容了2个tidb节点,但是新增的节点明显QPS/CPU较老节点低不少,这个有什么办法吗,还是说需要重启老的tidb节点?
谢谢

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】

得慢慢均衡吧。应用有连接池,也不会很快就均衡了的。

已经很久了,还是不够均衡,是SLB的问题吗,SLB转发到5个tidb节点

有可能排查一下看看,是什么策略,是否有权重设置。一般负载均衡的组件都类似。
另外,看看每个tidb的连接数是不是均衡。

连接数是均衡的,每个节点在330左右,每个节点权重是一样的

那可能针对slb来说连接就是均衡的了。
qps和CPU低,只能说明恰好分配过来的应用连接占用资源的少。

业务低峰重启下老的tidb节点,这个办法是能想到的最简单快捷的办法。

1 个赞

PD 只管 TiKV Region/Leader 调度PD 完全不管理 TiDB Server 之间的 SQL 流量、客户端连接分发

看下活跃是不是均衡的,每个实例,查下cluster_processlist,多刷几次顺时的。如果不均衡,有可能是长连接,需要重启应用端

看起来是 连接分布不均缓存未预热 导致的

建议先检查负载均衡策略。TiDB默认使用round-robin,但客户端连接池可能缓存了旧节点地址。

  1. 检查应用连接配置:确认使用TiDB proxy(如HAProxy、LVS)或TiDB-server的负载均衡。如果直接用JDBC连接,建议改用TiDB proxy做统一入口。

  2. 查看TiDB节点状态:执行show status like 'server_id'确认新节点正常注册。

PD 只管 TiKV 数据层的 Region/Leader 均衡,完全不会管 TiDB Server 计算层的连接、QPS、CPU 负载

你新增 2 台 TiDB 但流量上不去、老节点满载、新节点空闲,根源 100% 是【应用连接池 / 四层代理长连接固化到老 3 台 TiDB】,新节点没有新建连接流入;单纯重启老 TiDB 只能临时释放存量连接,治标不治本。

负载均衡在负载均衡器/客户端侧,不是 TiDB 自动均分历史连接。把新节点加进 LB 后端并逐步切流;长连接不会自动迁走,可滚动重启老节点或重连池。确认新节点已加入集群且健康。