✓
TDengine
上周一,TDengine 正式发布了 IoT 场景下基于 TSBS 的时序数据库(Time Series Database,TSDB)性能基准测试报告。该报告模拟虚拟货运公司车队中一组卡车的时序数据,预设了五种卡车规模场景,在相同的 AWS 云环境下运行了 TDengine 3.0、TimescaleDB 2.10.1 和 InfluxDB 1.8.10,从四大维度进行对比测试并输出结果。
为了便于大家更好地阅读和理解,基于本报告内容,我们将从写入、查询及测试过程如何复现等几大维度输出系列文章。本篇文章将为大家解读三大时序数据库在写入性能上的差异点。在上一篇文章《IoT 场景 TSBS 测试报告结果一键检验,测试脚本是______》中,我们对测试场景和基本配置已经进行了详细介绍,本篇文章便不再赘述,还没有了解过的小伙伴可以点击上文链接查看。
01
不同场景下写入性能对比
不同场景下写入性能的对比(metrics/sec. 数值越大越好)
磁盘空间占用(数值越小越优)
02
写入过程资源消耗对比
仅凭数据写入速度,并不能全面地反映出三个系统在不同场景下数据写入的整体表现。为此我们以 1,000,000 devices × 10 metrics(场景四)为数据模板,检查数据写入过程中的服务器和客户端(包括客户端与服务器)的整体负载状况,并以此来对比三个系统在写入过程中服务器/客户端节点的资源占用情况。这里的资源占用主要包括服务器端的 CPU 开销/磁盘 IO 开销和客户端 CPU 开销。
1
服务端 CPU 开销
下图展示了在场景四写入过程中服务器端 CPU 负载状况。可以看到,三个系统在返回给客户端写入完成消息以后,都还继续使用服务器的资源进行相应的处理工作,这点上,TimescaleDB 尤为明显。
TimescaleDB 在 7x 秒时即反馈客户端写入完成,但是其服务器端仍然调用 CPU 资源进行了数据压缩和整理工作,当然整个工作带来的 CPU 负载相对而言并不高,只有其峰值 CPU 开销的一半左右,但是其持续时间相当长,接近净写入时间的 4 倍。

2
磁盘 I/O 对比

写入过程中服务器 IO 开销
在写入相同规模数据集情况下,TDengine 在写入过程中对于磁盘写入能力的占用远小于 TimescaleDB 和 InfluxDB,只占用了部分磁盘写入能力(125MiB/Sec. 3000IOPS)。从图上能看到,数据写入过程中磁盘的 IO 瓶颈是确实存在的——InfluxDB 长时间消耗完全部的磁盘写入能力,TimescaleDB 写入过程对于写入的消耗相对 InfluxDB 来说要更具优势,但是仍然远超过了 TDengine 对磁盘写入能力的需求。
3
客户端 CPU 开销

从上图可以看到,客户端上 TDengine 对 CPU 的需求大于 TimescaleDB 和 InfluxDB。InfluxDB 在整个写入过程中,从客户端整体负载来看是三个系统中计算资源占用最低的,对客户端压力最小,其写入的压力基本上完全集中在服务端,但这种模式很容易导致服务端成为瓶颈。
03
性能基准评估扩展部分
1
虚拟节点(vnodes)数量
我们调整数据库中虚拟节点数量(默认是 12)为 12、18、24,并衡量不同 vnode 数量情况下 TDengine 写入性能。

2
设备记录数量

(数值越大越好)
04
写在最后
在《中移物联车联网项目,在 TDengine 3.0 的应用》一文中,TDengine 3.0 高效的写入性能也在企业实践中得到了验证——从 2.0 到 3.0,面对 1.2-1.3w 行/s 的业务写入峰值,以及 20w 行/s 的数据迁移巨大写入量,TDengine 都可以轻松应对,磁盘占用量约占 MySQL 的 1/7。如果你也面临着数据处理难题或想要进行数据架构升级,欢迎添加小T vx:tdengine1,加入 TDengine 用户交流群,和更多志同道合的开发者一起攻克难关。
往
期
推
荐
👇 点击阅读原文,查看完整报告 !



