TPC-H 下 TiFlash 的扩展性测试报告 - v5.1.0
作者: 长乐未央原文来源:https://tidb.net/blog/8d93cf4e
【是否原创】是
【首发渠道】TiDB 社区
【首发渠道链接】其他平台首发请附上对应链接
【正文】
测试目的
测试在集群 v5.1.0 环境下,TiFlash 从 3 实例扩展到 4 实例、5 实例后的 TPC-H 的性能提升,其中 TPC-H 测试数据为 100GB,TiFlash replica 为 1。
测试环境
硬件配置
CPU:40 核 Intel® Xeon® CPU E5-2630 v4 @ 2.20GHz
Memory:188GB
Disk:NVMe SSD 3.6T * 2
OS:CentOS Linux release 7.9.2009 (Core) x86-64
FileSystem : ext4
软件版本
参数配置
在执行 TPCH 查询之前,在会话级别上设置:
set @@session.tidb_isolation_read_engines = ‘tiflash,tidb’;
其余集群参数均为默认配置。
测试方案
集群规划
以上,集群共有 10 台机器,其中监控和中控机单独各 1 台,172.16.4.34 和 172.16.4.35 作为 TiFlash 的扩展机器。
172.16.4.31 ~ 172.16.4.33 上均部署了 TiKV 和 TiFlash ,为了避免 TiKV 和 TiFlash 争抢磁盘和 I/O 资源,把 TiKV 和 TiFlash 的数据目录部署在不同的 NVMe 盘上。
测试过程
1、通过 tiup 部署 tidb 集群
2、通过 TiUP 的 bench 工具导入 TPC-H 100G 数据
使用如下命令:
tiup bench tpch prepare \“
–host {tidb_port} \“
–db tpch_100 –sf 100 –tiflash –analyze \“
–tidb_build_stats_concurrency 8 –tidb_distsql_scan_concurrency 30
3、执行查询
i. 下载 TPC-H 的 SQL 查询文件:
git clone https://github.com/pingcap/tidb-bench.git && cd tpch/queries
ii. 登录 TiDB 并设置 tidb_isolation_read_engines
set @@session.tidb_isolation_read_engines = ‘tiflash,tidb’;
因为本次测试目的为 TiFlash 的扩展性,所以执行查询时要从 TiFlash 中读取数据。
iii. 执行查询并扩展实例
TiFlash 为 3 实例时,执行查询并记录耗时(执行多次,并取三次查询结果求平均值);
扩展 TiFlash 为 4 实例,并观察监控等待 region 分布均匀后,再执行查询并记录耗时;
扩展 TiFlash 为 5 实例,并观察监控等待 region 分布均匀后,再执行查询并记录耗时;
测试结果
注意:
本测试所执行 SQL 语句对应的表只有主键,没有建立二级索引。因此以下测试结果为无索引结果。
随着 TiFlash 实例扩展,各查询的执行时间如下:
趋势图:
以上性能图中,绿色为 TiFlash 为 3 实例下的查询效率,蓝色为 TiFlash 为 4 实例下的查询效率,黄色为 TiFlash 为 5 实例下的查询效率。纵坐标是查询的处理时间,单位为秒,纵坐标越低,表示性能越好。
下面展示随着 TiFlash 实例的扩展,各个查询的执行效率的提升比例,计算方式如下:
效率提升比例 = (3 个 TiFlash 实例下的执行时间 - 4/5 个 TiFlash 实例下的执行时间) / 3 个 TiFlash 实例下的执行时间 *100%
趋势图:
以上性能图中,蓝色为扩展了 1 个 TiFlash 实例下的查询效率提升比例,橙色为扩展了 2 个 TiFlash 实例下的查询效率提升比例。纵坐标是百分比,纵坐标越高,表示效率提升越明显。
测试总结
从以上性能图可以看出,随着 TiFlash 实例的扩展,各查询语句的执行时间普遍下降,执行效率普遍提升。并且其中大多数查询的效率有着较为明显地提升,如 Q4、Q9、Q13、Q21 等。
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/c0be622bfd269dcd751125fcb】。文章转载请联系作者。
评论