TSBS 实测:InfluxDB 3.0 查询速度最多慢 48 倍!

03/19 18:06
阅读数 45



亮点总结


1. 在大多数查询场景下,InfluxDB 3.0 的查询速度明显慢于 InfluxDB 1.8。在 DevOps 场景下,查询速度最多慢 48 倍,而在 IoT 场景下,最大差距达 30 倍。

2. 在 IoT 场景中,InfluxDB 3.0 由于 InfluxQL 兼容性问题,12 个测试查询中有 6 个无法执行,而 InfluxDB 1.8 则可正常运行,说明 InfluxDB 3.0 对 InfluxQL 的支持仍然存在较大局限。

3. 在更大规模的数据集测试(4000 台设备,每台 10 个指标)中,InfluxDB 3.0 无法在高并发环境下运行,必须将并发 worker 数量减少到 3 个或更少

图片

不久前,我们发布了 InfluxDB 3.0 在数据写入性能上的测试结果。这次,我们进一步对比其查询性能。为了保证测试的公平性,本次测试依然采用 Time Series Benchmark Suite(TSBS)。InfluxDB 3.0 宣称支持 InfluxQL,按理来说,TSBS 针对 InfluxDB 1.8 的查询集应该可以直接在 3.0 版本上运行,但在实际测试中,我们发现其 InfluxQL 兼容性并不完善。

根据 InfluxData 官方文档(https://docs.influxdata.com/influxdb3/core/reference/influxql/feature-support/),InfluxDB 3.0 目前仍不完全支持 InfluxQL 语法,即便考虑到这些已知限制,我们仍然遇到了一些在 InfluxDB 1.8 上可正常执行的 TSBS 查询,在 InfluxDB 3.0 上却无法运行的情况。更值得关注的是,即使是能够执行的查询,InfluxDB 3.0 的查询性能也明显逊色于 InfluxDB 1.8。



#TSBS

DevOps 场景测试

图片
我们首先对 DevOps 场景下的小规模数据集(100 台设备)进行基准测试,每个查询执行 4000 次,并使用 8 个 worker 进行并行查询,测量其平均响应时间。
测试结果显示,InfluxDB 3.0 仅在 double-groupby-all high-cpu-all 这两个查询上表现优于 InfluxDB 1.8,而其余查询的性能均大幅落后。其中, lastpoint 查询的执行速度甚至比 InfluxDB 1.8 慢了最多 48 倍。
鉴于 InfluxDB 3.0 可能针对高基数场景进行了优化,我们将测试规模扩大至 4000 台设备,以观察其在更大数据量下的表现。然而,测试过程中出现了严重问题:在数据库本身未崩溃,日志中也未记录任何相关错误的情况下,InfluxDB 3.0 拒绝了 HTTP 请求。
最终,我们不得不将 worker 数量减少到 3 个甚至 2 个,才能完成查询。受影响的查询包括 double-groupby-1 double-groupby-5 double-groupby-all high-cpu-all groupby-orderby-limit lastpoint ,这表明 InfluxDB 3.0 在高并发查询环境下的稳定性存在明显问题。


#TSBS

IoT 场景测试

图片
在 IoT 场景测试中,我们使用了更加复杂的数据集,以模拟 TDengine 典型用户所处理的海量时序数据。然而,在 12 个测试查询中,有 6 个查询在 InfluxDB 3.0 上完全无法运行,而 InfluxDB 1.8 则可以正常执行。

注意:标记为“—”的条目表示查询失败或未返回结果。
从查询性能来看,InfluxDB 3.0 仅在 breakdown-frequency 查询上优于 InfluxDB 1.8,而其他查询的执行速度均明显落后。其中,在 last-loc 查询上,InfluxDB 3.0 的运行速度比 InfluxDB 1.8 慢了多达 30 倍。
此外,有六个查询执行失败,分别是 stationary-trucks long-driving-sessions long-daily-sessions avg-daily-driving-duration avg-daily-driving-session daily-activity 。其中,后三个查询因 InfluxDB 3.0 的 InfluxQL 兼容性问题无法执行。例如, avg-daily-driving-duration 查询返回了以下错误信息:
类似的错误同样出现在 avg-daily-driving-session daily-activity 查询中。为了验证这一问题,我们尝试修改 InfluxQL 查询,经过一定调整后,最终在 InfluxDB 3.0 上成功运行,这进一步表明其 InfluxQL API 并未完全兼容 InfluxDB 1.8。
此外, stationary-trucks long-driving-sessions long-daily-sessions 查询虽然能够快速返回,但结果集为空。目前,我们仍未找到适用于 InfluxDB 3.0 的可行查询修改方案。
此外,当查询数据集扩展至 4000 台设备时,我们同样不得不减少 worker 数量,情况与 DevOps 场景类似。受影响的查询包括 last-loc high-load avg-vs-projected-fuel-consumption avg-daily-driving-session avg-load breakdown-frequency



#TSBS

欢迎查看源码自行测试

图片
为了实现测试流程的自动化,让用户能够使用 TSBS 对比不同数据库的性能,我们开发了一套支持本地运行的测试脚本。在 Ubuntu 22 系统上,用户可将 TSBS 分支 enh/add-influxdb3.0 克隆至 /usr/local/src 目录,然后进入 scripts/tsdbComp 目录,并以 root 用户执行 tsbs_test.sh --help 命令。
sudo -sgit clone https://github.com/taosdata/tsbscd tsbsgit checkout enh/add-influxdb3.0cd scripts/tsdbComp./tsbs_test.sh --help

该脚本支持多种测试场景和配置选项。鉴于测试涉及高性能计算,建议在至少配备 4 核 CPU 和 8GB 内存的机器上运行。



结语

图片
本次 TSBS 测试表明,InfluxDB 3.0 在查询性能上仍然明显落后于 InfluxDB 1.8,同时 InfluxQL 兼容性问题较为严重。此外,由于查询时间范围被限制在 72 小时以内,许多典型的时序数据应用(包括 TSBS 测试场景)将变得难以实现,甚至无法执行。
鉴于 InfluxDB 3.0 仍处于公测阶段,我们相信其性能和兼容性在未来版本中可能会有所改进,但就当前情况来看,还是建议开源用户谨慎考虑是否升级。
图片



QCon 北京 2025 即将开启,TDengine 带你免费参会!


作为国内最具影响力的技术大会之一,QCon 汇聚前沿技术趋势、顶级大咖分享与深度行业交流。但想要参会?门票价格高达 5800 元💰…… 现在,TDengine 替你买单!我们将送出 2 张 QCon 北京 2025 门票,只要你在时序数据存储、查询或计算方面有实际业务挑战,就有机会免费获得!


🎯 参与方式:扫描下方海报二维码,填写问卷并描述你在时序数据管理中的挑战。我们将筛选符合要求的参与者,并从中随机抽取 2 位幸运儿送出 QCon 门票。


📅 提交截止日期:4 月 1 日 12:00

最终获奖者可添加小T微信(tdengine)领取 QCon 北京 2025 门票 🎟️


👇 点击阅读原文,立即体验 TDengine!

本文分享自微信公众号 - TDengine(taosdata_news)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部