(毕设相关,大佬求救)TiDB水平伸缩容问题

【 TiDB 使用环境】测试
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】

问题背景,小弟利用运维命令 “kubectl patch -n tidb-cluster tc basic --type merge --patch '{“spec”:{“tidb”:{“replicas”:3}}}” 来更改TiDB节点个数。
在我开启一个压测程序后,当我进行扩容时,由2个tidbPod扩容为4个tidbPod,发现扩容后的TiDB的CPU使用率几乎为0(即没被分配压测任务)如下图:

当我进行缩容时,将4个pod缩为1个pod时,压测程序意外终止了,报错如下:

请问我如何在同一个压测程序的压测下,进行TiDB的扩缩容,并拿到想要的测试结果呢?我想测在某一个工作负载下,集群在扩缩容下的CPU的变化情况。 也就是扩容后,应该每个tidbPod的cpu使用率都不应该为0;缩容后,压测程序能够不中断的继续运行下去。

各位大佬求救求救!

tidb 前置还缺一个 proxy,帮你均衡 tidb 的 connector…

官方有推荐的 haproxy,搭建一个就行了


或者采用 mysql jdbc connector 的多个 IP 和端口链接的,自动均衡模式

1 个赞

但我的tidb用的是clusterIp 模式啊,也需要配置haproxy代理嘛?

  1. 通常压测程序(为性能考虑)有链接池使用长链接,则压力无法重新路由到扩容节点
  2. 通常压测程序默认不处理任何报错直接返回,需自行按需调整(比如遇到 error 2013 后重试几次)
1 个赞

压测服务也是跑在 K8S 内部的么?

确认下 clusterIp 模式 是否能达成你想要的均衡…


比如,我给DNS 设定了一个域名,绑定了 多个 IP,我 ping 这个域名的时候,每次ping 都会切换到不同的 IP 上(但是同一次请求(不论请求了多少内容),都只会到一个 IP 上…)

sybench吗?指定一下下面两个参数
–mysql-ignore-errors=ALL
–oltp-reconnect-mode=STRING
跳过报错,连接模式选每次重新连接

1 个赞

压测程序要有重连机制。不然缩容的时候原来的连接就断开了,就会报错。
扩容新节点没压力,可能因为你的压测程序用的长链接的方式,一直用的原来的连接。

1 个赞
  1. 压测服务是在k8s集群上的master节点上跑的。

2.当我初始节点为n个时,然后去跑压测程序,clusterIp模式能达到近似均衡,之前测过(未自动伸缩情况下,也即未在测试过程中使用运维命令改变pod大小),如下图所示:

您好,我觉得你的方案是可行的,在实现的过程中,sysbench提出警告:


我事先在配置文件sysbench.config添加了参数
image

请问这是什么原因呢?刚刚博客了一会也没找到想要的答案

你这个版本的sysbench不支持这个参数了吧,你直接用现成的 oltp类的rua文件压测

改了改原来一开始就用的压测工具的代码(CMU-Bench),成了

多谢指导 :grinning:

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