暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

TDengine 2025-03-20
12



亮点总结


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 -s
    git clone https://github.com/taosdata/tsbs
    cd tsbs
    git checkout enh/add-influxdb3.0
    cd 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,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论