TiDB选拓扑选择和入库调优

【 TiDB 使用环境】测试
【 TiDB 版本】v8.1.1

目前在做tidb的前期调研与测试。3台测试机器(64核+128G+SSD),我先部署了node2-tikv,node3-tiflash,然后其它组件部署在node1上。

但测试写入时发现性能并不太理想(3分钟写入约100w,采用的是TiBigData里面的直接写入tikv的方式,每次flush 5000行。),且经常出现写入过程中,忽然无法查询的问题。

有如下问题希望交流沟通:

  1. 我们这个项目场景更多是OLAP场景(且绝大部分都只是简单聚合+窗口函数,几乎没有关联),感觉TiFlash机器更多会好些?

  2. 机器存在多个网卡(千兆+万兆),如何指定使用万兆网卡。还是说只要使用tiup部署时的IP是万兆口的IP即可?

  3. 我查看TiBigdata的代码,应该采用的是 client-java 中的两阶段提交这种方式,从文档看应该是吞吐量比较好哪种。如何提升入库性能?另外感觉TiBigdata已经很长时间没有维护了,有啥更优的数据入库方案吗?

tikv3副本,至少3节点,你是修改副本数量了吗?如果两个副本在同一个服务器,可能会影响写入性能。测试的话,要么 至少3节点tikv要么 修改副本数为1.

在使用tiup部署时,只要您指定的IP地址是连接到万兆网卡的IP,通常TiDB集群会自动使用该网卡进行数据传输

1、部署架构可以先采用混布,即每台机器1个tidb,1个tikv和1个tiflash,测试期间发现组件有瓶颈可以动态扩容。
2、指定万兆的ip即可
3、TiBigdata非官方项目,谨慎使用。

因为目前想的是,数据入库前要做预处理,但通过JDBC目前看性能不太够,目前还是考虑直接写kv的方案。我也在考虑用TiSpark去测测,这个好像是官方的项目。

实在不行只能写完落文件,然后用官方的import工具试试。

你这3个问题,我建议先满足写入。

因为假设你想使用tiflash,它也是需要从tikv复制数据的。
如果写入的要求达不到,加入tiflash会让情况变得更糟,写入io和优化变得更加麻烦。

有如下问题希望交流沟通:

  1. 我们这个项目场景更多是OLAP场景(且绝大部分都只是简单聚合+窗口函数,几乎没有关联),感觉TiFlash机器更多会好些?
    tiflash AP 需要看具体调用并发,副本数不建议多,并发高tiflash节点可以多些。
  2. 机器存在多个网卡(千兆+万兆),如何指定使用万兆网卡。还是说只要使用tiup部署时的IP是万兆口的IP即可?
    tiup指定配置万兆网卡
  3. 我查看TiBigdata的代码,应该采用的是 client-java 中的两阶段提交这种方式,从文档看应该是吞吐量比较好哪种。如何提升入库性能?另外感觉TiBigdata已经很长时间没有维护了,有啥更优的数据入库方案吗?
    没有使用过不太清楚
1 个赞