大数据量的资源问题

【TiDB 使用环境】:生产/测试/POC

【TiDB 版本】
v5.2.1

【出现的问题】
我们目前 3台tidb+pd 16c 32g,3台tikv 16c 32g,3台tiflash 32c 128G内存, 数据量单副本约2T,数据量8亿,使用过程中觉得tiflash很慢,一个count都要 几十秒,有的甚至出不来结果,想问下大家的经验,这个数据量需要一个怎样的配置

1赞

有具体的 SQL、结构和 explain 的信息可以分享出来么? 这样才能方便看看是什么问题导致的

1赞

sql:select count(1) from kol.kol_doc kd
执行计划:
_explain_analyze_select_count_1_from_kol_kol_doc_kd__202110251632.txt (3.4 KB)

建表语句:
ddl.sql (1.9 KB)

1赞

有点奇怪,你的结构怎么走的全表扫描?没走索引

1赞

analyze表试下呢,我4.0.13的版本测试了是正常走索引的,我是走tikv的

1赞

不是,我这个是走的tiflash啊,你这个是走tikv的

1赞

Hi ~ 试一下 select count (*) 呢 ? 因为 select coun(1) 在逻辑优化器中会选择索引列进行统计查询,所以走不上 tiflash 。

1赞

您好,看我的附件,执行计划显示走的tiflash,而且我的建表语句是把字段给抹掉了,真正的index不一定是第一个字段

1赞

请问这个有结果了吗

1赞

咱们使用的是 SSD 的盘吗 ?

1赞

aws云盘,所以想问下,8亿数据,8T,这种数据量的按您这边的使用经验,需要什么样的配置

1赞

按照官方建议使用 SSD盘,目前云盘的 IOPS 和 latency 不达标,没有办法使用的 TiFlash 性能带来收益。

具体是哪一种 ebs ?我们一般推荐 gp3,对性能要求更高的,可以考虑 io 系列 ebs。由于 ebs 本身的 iops 和带宽限制,所以性能一般会比本地磁盘差一些。可以看一下,

  1. 查询过程中,iops 和 带宽是否已经达到瓶颈。
  2. 查询的过程中有数据更新吗?如果是可以关注一下 Grafana 监控的 TiFlash-Summary 项,Raft Wait Index Duration 和 Raft Batch Read Index Duration 是否比较高。

另外,我们在即将发布的 v5.3.0 中,优化了 TiFlash 的 TableScan,预计会有较大性能提升。

用的gp3,不过iops和带宽确实没达到官方的建议,所以想问下,这种的数据量,tidb的客户一般是什么的配置

机器的配置和业务需求强相关。如果瓶颈在 IO,而 CPU 较空闲,可以考虑用更多的低配置 ec2 实例(比如 6 台16c + 64G),这样可以在相近价格下,获得一倍的性能提升。