写点什么

TiFlash 5.x 与 4.x 对比测试

  • 2022 年 7 月 11 日
  • 本文字数:2507 字

    阅读完需:约 8 分钟

作者: 18515065291 原文来源:https://tidb.net/blog/b3740d1c

TiFlash5.x 与 4.x 对比测试

                   2021-04-15 刘春雷
复制代码

1、汇总

TiDB5.0 版本 GA 啦~ 通过 TiFlash 节点引入了 MPP 架构。下面进行简单的性能测试~


  • 性能提升

  • 4.0TiFlash, 双节点比单节点: SQL1-SQL6 SQL 执行时间分别降低:46.9%,20%,4%,15.25%,33.33%,31.67%,平均降低: 25.19%

  • 5.0TiFlash, 双节点比单节点 :SQL1-SQL6 SQL 执行时间分别降低:77.27%,28.31%,21.95%,29.39%,10.66%,28.82%,平均降低: 32.73%

  • 5.0Tiflash 双节点 比 4.0Tiflash 双节点 :SQL1-SQL6 SQL 执行时间分别降低:56.52%,-15.21%,55.55%,12.18%,80.29%,92.17%,平均降低: 46.91%

  • ​​​​​​​​​​​​​​结论:

  • ​​​​​​​4.0TiFlash 多节点比单节点有性能提升

  • 5.0TiFlash 多节点比单节点有性能提升

  • 5.0TiFlash 多节点 比 4.0TiFlash 多节点 有性能提升

  • 问题:

  • 测试过程中,发现 <=4.0.11 版本的 TiFlash 存在内存吃满 oom 的问题,已经反馈官方,待 4.0.13 版本左右进行修复

  • 计划:

  • 当前是 5.0.0 版本测试的 DBA 自己的监控业务集群,后续会使用 5.0.1 版本,使用其他报表、数仓业务进行线上升级与观察,线上的 SQL 更复杂,对 Tiflash 是个挑战~,后续会有文章分享滴~

2、信息

3、测试

3.1、测试汇总


3.2、测试情况

【信息】:


SELECT * FROM information_schema.tiflash_replica ;



【确认开启 MPP】:


show variables like “tidb_allow_mpp”;



【情况】:


当前已有 Tiflash 集群,1 个 TiFlash 节点,监控数据表已经添加至 TiFlash


【测试流程】:


  • 测试 SQL

  • 扩容至 2 个 Tiflash 节点,均衡后,测试 SQL

  • 升级至 5.0.0

  • 测试 SQL

  • 添加 TiFlash 节点

  • 等待均衡

  • 测试 SQL 对比


【均衡数据】:


PD-Statistics-balance - Store-used


3.3、SQL1

4.0 单个 TiFlash 执行计划



【4.0 单个 TiFlash 执行时间】:


1 row in set (1.30 sec)


4.0 两个 TiFlash 执行计划 】:



【4.0 两个 TiFlash 执行时间】:


1 row in set (0.69 sec)


【5.0 单个 TiFlash 执行计划】:


explain select max(Com_select),avg(Com_select),sum(Com_select) from mysql_globalstatus where monitorDay >=‘2021-03-01’ and monitorDay <=‘2021-03-31’;



【5.0 单个 TiFlash 执行时间】:


1 row in set (1.32 sec)


【5.0 2 个 TiFlash 执行计划】:



【5.0 2 个 TiFlash 执行时间】:


1 row in set (0.30 sec)

3.4、SQL2

4.0 单个 TiFlash 执行计划 】:



【4.0 单个 TiFlash 执行时间】:


1 row in set (2.30 sec)


4.0 两个 TiFlash 执行计划 】:



【4.0 两个 TiFlash 执行时间】:


1 row in set (1.84 sec)


【5.0 单个 TiFlash 执行计划】:


explain select igid,sum(Com_select) from mysql_globalstatus where monitorDay =‘2021-04-14’ group by igid order by sum(Com_select) desc limit 5;



【5.0 单个 TiFlash 执行时间】:


1 row in set (3.78 sec)


【5.0 2 个 TiFlash 执行计划】:



【5.0 2 个 TiFlash 执行时间】:


1 row in set (2.12 sec)

3.5、SQL3

4.0 单个 TiFlash 执行计划 】:



【4.0 单个 TiFlash 执行时间】:


5 rows in set (0.75 sec)


4.0 两个 TiFlash 执行计划 】:



【4.0 两个 TiFlash 执行时间】:


5 rows in set (0.72 sec)


【5.0 单个 TiFlash 执行计划】:


explain select igid,sum(Com_select) from mysql_globalstatus where monitorDay >=‘2021-03-01’ and monitorDay <=‘2021-03-31’ group by igid order by sum(Com_select) desc limit 5;



【5.0 单个 TiFlash 执行时间】:


5 rows in set (0.41 sec)


【5.0 2 个 TiFlash 执行计划】:



【5.0 2 个 TiFlash 执行时间】:


5 rows in set (0.32 sec)

3.6、SQL4

4.0 单个 TiFlash 执行计划 】:



【4.0 单个 TiFlash 执行时间】:


5 rows in set (4.26 sec)


4.0 两个 TiFlash 执行计划 】:



【4.0 两个 TiFlash 执行时间】:


5 rows in set (3.61 sec)


【5.0 1 个 TiFlash 执行时间】:


5 rows in set (4.49 sec)


【5.0 2 个 TiFlash 执行计划】:



【5.0 2 个 TiFlash 执行时间】:


5 rows in set (3.17 sec)

3.7、SQL5

4.0 单个 TiFlash 执行计划 】:



【4.0 单个 TiFlash 执行时间】:


5 rows in set (5.10 sec)


4.0 两个 TiFlash 执行计划 】:



【4.0 两个 TiFlash 执行时间】:


5 rows in set (3.40 sec)


【5.0 表 mysql_bussname 没有添加至 Tiflash 】:


mysql_bussname 没有添加至 Tiflash


explain select aa.igid,bb.buss_name,sum(Com_select)


-> from mysql_globalstatus aa inner join mysql_bussname bb


-> on aa.igid=bb.igid and


-> aa.monitorDay =‘2021-04-14’


-> group by aa.igid order by sum(Com_select) desc limit 5;



【5.0 表 mysql_bussname 没有添加至 Tiflash 的执行时间 】:


5 rows in set (10.82 sec)


【5.0 表 mysql_bussname 添加至 Tiflash】:


alter table mysql_bussname SET TIFLASH REPLICA 1;


【5.0 单个 TiFlash 执行计划】:


explain select aa.igid,bb.buss_name,sum(Com_select) from mysql_globalstatus aa inner join mysql_bussname bb on aa.igid=bb.igid and aa.monitorDay =‘2021-04-14’ group by aa.igid order by sum(Com_select) desc limit 5;



【5.0 单个 TiFlash 执行时间】:


5 rows in set (0.75 sec)


【5.0 2 个 TiFlash 执行计划】:



【5.0 2 个 TiFlash 执行时间】:


5 rows in set (0.67 sec)

3.8、SQL6

4.0 单个 TiFlash 执行计划 】:



【4.0 单个 TiFlash 执行时间】:


5 rows in set (1 min 54.16 sec)


4.0 两个 TiFlash 执行计划 】:



【4.0 两个 TiFlash 执行时间】:


5 rows in set (1 min 18.00 sec)


【5.0 单个 TiFlash 执行计划】:


explain select SQL_NO_CACHE aa.igid,bb.buss_name,sum(Com_select)


-> from mysql_globalstatus aa inner join mysql_bussname bb


-> on aa.igid=bb.igid and


-> aa.monitorDay >=‘2021-03-01’ and aa.monitorDay <=‘2021-03-31’


-> group by aa.igid order by sum(Com_select) desc limit 5;



【5.0 单个 TiFlash 执行时间】:


5 rows in set (8.57 sec)


【5.0 2 个 TiFlash 执行计划】:



【5.0 2 个 TiFlash 执行时间】:


5 rows in set (6.10 sec)


发布于: 刚刚阅读数: 2
用户头像

TiDB 社区官网:https://tidb.net/ 2021.12.15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiFlash 5.x 与 4.x 对比测试_TiDB 社区干货传送门_InfoQ写作社区