去年 8 月咱们在 TDengine 开发者大会上正式公布了 TDengine 3.0,TDengine 也由此降级成为了一款云原生时序数据库(Time Series Database,TSDB)。为了主观、精确、无效地评估 TDengine 3.0 的性能指标,咱们决定应用 TSBS(Time Series Benchmark Suite)作为基准性能测试平台,针对 DevOps 场景的数据集对 TDengine 3.0 开展整体(包含写入、查问、存储、资源耗费等)性能评估。
TSBS 是一个时序数据处理(数据库)零碎的性能基准测试平台,提供了 IoT、DevOps 两个典型利用场景,它由 Timescale 开源并负责保护。作为一个性能基准测试平台,TSBS 具备便捷、易用、扩大灵便等特点,涵盖了时序数据的生成、写入(加载)、多种类别的典型查问等性能,并可能主动汇总最终后果。因为其凋谢开源的特点,失去了泛滥数据库厂商的反对,作为业余的产品性能基准测试平台被若干数据库厂商宽泛应用。
以下的性能基准报告均应用了 TSBS 作为根底 Benchmark 平台,咱们从时间跨度和公布厂商的知名度同时来看,就能发现,根底测试平台 TSBS 曾经具备了很高的认可度:
- 2018 年 11 月 ,VictoriaMetrics 的创始人 Aliaksandr Valialkin 公布《High-cardinality TSDB benchmarks: VictoriaMetrics vs TimescaleDB vs InfluxDB》,将 VictoriaMetrics 与 TimescaleDB、InfluxDB 进行性能比照。
- 2018 年 11 月 ,文章《ClickHouse Crushing Time Series》中比照了 TimescaleDB, InfluxDB, ClickHouse 在时序数据场景下的性能。
- 2020 年 3 月 ,Cloudera 在网站博客中公布《Benchmarking Time Series workloads on Apache Kudu using TSBS》,在 DevOps 场景 中比照了 Apache Kudu, InfluxDB, VictoriaMetrics, ClickHouse 等整体性能体现。
- 2020 年 3 月 ,Redis 公布了基于 TSBS 的性能报告《RedisTimeSeries Version 1.2 Benchmarks》。
- 2020 年 8 月 ,Timescale 在其官网博客公布了性能比照报告《TimescaleDB vs. InfluxDB: Purpose Built Differently for Time-Series Data》。
- 2021 年 8 月 ,QuestDB 公布了 QuestDB 与 TimescaleDB 的性能比照报告——《QuestDB vs. TimescaleDB》。
DevOps 场景是一个典型的时序数据利用场景,TSBS DevOps 场景提供了 CPU 状态的模仿数据,针对每个设施(CPU)记录其 10 个测量值(metric),1 个工夫戳(纳秒分辨率),10 个标签值(tag)。生成的数据每 10 秒距离一条记录,具体的内容和示例数据如下:
TSBS 测试能够简略划分为两个次要局部——数据写入和数据查问。在本次整个基准性能评估中,共波及以下五个场景,每个场景的具体数据规模和特点见下表:
通过上表能够看到,五个场景的区别次要在于数据集所蕴含的设施记录数量、设施数的不同,数据工夫距离均维持在 10 sec。整体来看,五个场景的数据规模都不算大,数据规模最大的是场景五,数据达到了 1.8 亿,数据规模最小的是场景一,只有 2678 万条记录。在场景四和场景五中,因为设施数量绝对较多,所以数据集仅笼罩了 3 分钟的时间跨度。
为了保障测试后果的公正牢靠及可复制性,咱们选用了公共 IaaS 平台来搭建 Benchmark 根底硬件环境,采纳了大多数性能比照报告中应用的场景——亚马逊 EC2 服务环境下 r4.8xlarge 类型的实例作为根底运行平台,区域为北美地区,包含 1 台服务器、1 台客户端。客户端与服务器硬件配置完全相同,两者应用 10 Gbps 网络连接。配置简表如下:
本次测试的比照软件为 InfluxDB1.8.10 及 Timescale 2.6.0,在这里要着重阐明一下,因为 InfluxDB 最新的 2.0 版本并没有纳入 TSBS 的骨干分支,因而在这次测试中咱们暂且应用了 TSBS 骨干分支所反对的 InfluxDB 最新版本,即 1.8.10。
整个 TSBS 测试流程绝对比较简单,在进行写入性能比照时,配置实现参数后间接运行 TSBS 框架脚本,期待后果输入即可。对于查询处理,咱们抉择了批量自动化去运行,对每个查问语句运行 5000 次,统计查问提早的算数均匀作为最初的查问提早后果。此外咱们还全程监控并记录了整个过程中服务器与客户端节点的系统资源开销与负载状况。
上面能够简略为大家介绍下本次测试后果。如下表所示,在全副五个场景中,TDengine 写入性能均优于 InfluxDB 和 TimescaleDB,写入过程中资源占用最低。比照 InfluxDB,TDengine 写入最优的场景是在 1000 万设施下,达到了 InfluxDB 的 10.6 倍 ;比照 TimescaleDB,TDengine 写入最优的场景是在 4000 个设施下,达到了 TimeScaleDB 的 6.7 倍 。
在查问测试上,咱们将其分为 5 大类、15 小类进行查问比照,从下图后果汇总中能够看到,在全副 15 个查问类型中,TDengine 的性能均优于 InfluxDB 和 TimescaleDB,并且它的所有查问提早均比 InfluxDB 和 TimescaleDB 更低。亮点数据之一体现在 Double Rollups 查问类型比照中,TDengine 最大达到 InfluxDB 的 34 倍 ,TimescaleDB 的 24 倍 。
以上就是 TDengine 基于 TSBS 测试报告的测试背景介绍,如果你对测试后果感兴趣,欢送点击进入官网查阅整体报告。