時序數據庫 InfluxDB 3.0 版本性能實測報告:寫入吞吐量提升效果驗證

亮點總結:

TSBS 測試表明,對于少于 100 萬臺設備的數據集,InfluxDB OSS 3.0 的數據寫入速度實際上比 InfluxDB OSS 1.8 更慢。

對于 100 萬臺及以上設備的數據集,InfluxDB OSS 3.0 的數據寫入性能才開始超過 InfluxDB OSS 1.8。

InfluxDB OSS 3.0 的數據寫入接口與 InfluxDB 1.8 并不兼容,用戶無法順利遷移。

早在 2023 年,在 InfluxDB 3.0 推向企業用戶時,官方曾宣稱其相比舊版本有顯著的性能提升。為了驗證這一說法,InfluxData 還發布了一份基準測試報告,對比了 InfluxDB 3.0 企業版與 InfluxDB OSS 1.8,結果顯示 InfluxDB 3.0 在各方面表現出色。

我們對這個版本非常好奇,但作為非企業用戶,只能和大多數人一樣等待了一年半,直到今年 1 月 InfluxDB OSS 3.0 終于公開發布。雖然目前的版本僅是“public alpha”,但這并不妨礙我們對其性能抱有很高的期待,畢竟 InfluxData 已經第二次徹底重構產品架構。對于那些希望平穩升級的用戶來說,這無疑是個不小的沖擊,更何況官方還直接放棄了 Flux 語言。如果 InfluxDB 3.0 無法在性能上帶來真正的突破,那這樣的升級又有何意義?

實際測試:InfluxDB 3.0 真的更快嗎?

為了驗證 InfluxDB 3.0 是否真的如官方宣傳般帶來巨大性能提升,我們采用 Time Series Benchmark Suite (TSBS) 進行對比測試。TSBS 由 InfluxData 最初開發,目前由 Timescale 維護,是業界公認的時序數據庫基準測試工具。理論上,InfluxDB 3.0 仍支持 InfluxQL 和傳統的 Line Protocol,因此應該能夠直接運行針對 1.8 版本的測試套件。然而,在實際測試過程中,我們遇到了多個兼容性問題,不得不尋找替代方案,這部分將在后續介紹測試方法的章節中詳細說明。

我們之所以選擇 TSBS 作為測試工具,不僅因為它比 QuestDB 之前發布的簡單基準測試更全面,還因為它提供了一個公開透明的測試框架,讓不同數據庫的對比變得更加公平。然而,測試結果卻讓我們大跌眼鏡。

TSBS 提供了兩個測試場景:DevOps 監控(CPU 監測)和物聯網(IoT,車輛跟蹤)。在測試中,我們使用 TSBS 生成數據,并分別寫入 InfluxDB 3 0.1.0(修訂版 v2.5.0-14345)、InfluxDB OSS 1.8 和 TDengine OSS 3.3.5.8。以下圖表展示了各系統在不同測試場景下的寫入性能(指標數/秒)。

TSBS DevOps 用例:

TSBS IoT 用例:

測試結果分析:InfluxDB 3.0 寫入提升遠不及 45 倍

在最大規模的數據集中,InfluxDB 3.0 在 DevOps 場景下的寫入性能提升了 5.4 倍,在物聯網(IoT)場景下提升了 4.9 倍。這與 InfluxData 基準測試報告中聲稱的“寫入吞吐量提升 45 倍”相去甚遠。更令人意外的是,在設備數量不超過 10 萬的場景下,InfluxDB 1.8 的寫入性能竟然優于 InfluxDB 3.0。這表明,InfluxDB 3.0 所謂的性能提升,要么僅適用于企業版,要么在獨立測試中并不成立。

從測試結果我們也可以看到,TDengine 的寫入速度比 InfluxDB 3.0 快 4.4 至 11.3 倍,相較 InfluxDB 1.8 更是提升了 3.1 至 22.8 倍。這進一步證明,即便 InfluxDB 3.0 進行了徹底重構,其寫入性能仍難以與 TDengine 相媲美。

TSBS 適配已完成,歡迎查看源碼自行測試

本次測試在一臺 40 核、256GB 內存的服務器上進行。該服務器的配置略低于 InfluxDB 官方基準測試環境,高于 QuestDB 的測試環境,但硬件差異對整體性能趨勢的影響可忽略不計。

由于 TSBS 尚未針對 InfluxDB 3.0 進行更新,我們不得不對其進行一定的修改。為確保公平性,我們盡量減少了改動,但仍需解決以下問題:

  • 數據庫管理指令不兼容 TSBS 運行 InfluxDB 1.8 時使用的 SHOW、CREATE、DELETE 數據庫命令在 InfluxDB 3.0 中已不可用。因此,我們改用 InfluxDB v3 API:

    • GET /api/v3/configure/database 查詢數據庫

    • POST /api/v3/configure/database 創建數據庫

    • DELETE /api/v3/configure/database 刪除數據庫

  • 多線程寫入失敗 在使用多個并發寫入進程時,InfluxDB 3.0 頻繁出現寫入失敗,并報錯 Invalid write response (status 409): catalog update error: table already exists。為解決此問題,我們修改了 TSBS,使其在遇到該錯誤時自動重試,而不是直接退出。此外,數據寫入采用 InfluxDB 3.0 提供的 /api/v3/write_lp 接口。

現在所有修改均已提交到我們維護的 TSBS 分支,任何人都可以查看源碼并自行運行測試。

結語

盡管 InfluxDB 3.0 經過全面重構,并宣傳性能顯著提升,但從寫入性能來看,至少對開源用戶而言,這一承諾并未兌現。測試結果表明,其寫入性能僅在超大規模數據集下略優于 InfluxDB 1.8,而對于大多數用戶,尤其是設備數少于 100 萬場景下,性能反而有所下降。即便目前仍處于 Public Alpha 階段,但該版本已開發一年多的時間,它的表現真的值得開源社區期待嗎?

此外,InfluxDB 3.0 采用了全新架構,導致用戶無法順利從 1.8 版本升級。對于開源用戶而言,這次升級是否值得,也確實需要慎重考慮。尤其是當數據寫入性能成為瓶頸時,從目前的測試結果來看,InfluxDB 3.0 并未能提供令人信服的解決方案。相比之下,TDengine 始終堅持對開源社區的承諾,不僅提供高性能、全功能的軟件,還確保所有用戶都能公平獲取和使用。面對時序數據存儲與處理的挑戰,選擇一款真正高效、穩定的數據庫,才是更明智的決定。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72717.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72717.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AS32X601雙核鎖步MCU技術優勢分析

AS32X601是國科安芯公司研制的一系列基于32位RISC-V指令集車規級MCU處理器芯片。主頻高達180MHz,支持雙核鎖步架構,基于軟錯誤防護技術加持,顯著提高芯片安全性能。產品具有高安全、低失效、多IO、低成本、抗輻照等特點。 一、功能安全與可靠…

基于 LeNet 網絡的 MNIST 數據集圖像分類

1.LeNet的原始實驗數據集MNIST 名稱:MNIST手寫數字數據集 數據類型:灰度圖 (一通道) 圖像大小:28*28 類別數:10類(數字0-9) 1.通過torchvision.datasets.MNIST下載并保存到本地…

電池綜合測試儀:科技賦能,精準守護能源安全

在當今這個科技日新月異的時代,電池作為眾多電子設備的心臟,其性能的穩定與高效直接關系到設備的運行質量與使用安全。隨著電動汽車、可穿戴設備、儲能系統等領域的快速發展,對電池性能的檢測與評估提出了更高要求。在此背景下,電…

【Linux 22.4 ubuntu 安裝cuda12.1 完整方案】

下載cuda12.1 官網網址 wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run sudo sh cuda_12.1.1_530.30.02_linux.run!import! 如果已經安裝驅動,則不要選擇dirver那項 添加環境變量 vim ~/.b…

實戰案例分享:Android WLAN Hal層移植(MTK+QCA6696)

本文將詳細介紹基于MTK平臺,適配高通(Qualcomm)QCA6696芯片的Android WLAN HAL層的移植過程,包括HIDL接口定義、Wi-Fi驅動移植以及wpa_supplicant適配過程,涵蓋STA與AP模式的常見問題與解決方法。 1. HIDL接口簡介 HID…

Greenplum6.19集群搭建

一,安裝說明 1.1環境說明 1、首先確定部署的環境,確定下服務器的端口,一般默認是22的端口; 2、當前這份文檔是服務器處于10022端口下部署的(現場生產環境要求,22端口在生產環境存在安全隱患)&…

電商項目-秒殺系統(四)秒殺異步下單防止重復秒殺

一、 防止惡意刷單解決 在生產場景下,可能會有一些人會惡意訪問當前網站,來進行惡意的刷單。這樣會造成當前系統出現一些業務上的業務混亂,出現臟數據,或者造成后端訪問壓力大等問題。 一般要解決這個問題的話,前端可…

原生android 打包.aar到uniapp使用

1.原生安卓里面引入uniapp官方提供的包文件: uniapp-v8-release.aar 2.提供uniapp調用的接口,新建類文件繼承UniModule, package com.dermandar.panoramal;import com.scjt.lib.certlib;import io.dcloud.feature.uniapp.annotation.UniJSM…

Android 多用戶相關

Android 多用戶相關 本文主要記錄下android 多用戶相關的adb 命令操作. 1: 獲取用戶列表 命令: adb shell pm list users 輸出如下: Users:UserInfo{0:機主:c13} running默認只有一個用戶, id為0 ,用戶狀態為運行 2: 創建新用戶 命令: adb shell …

基于Spring Boot的高校就業招聘系統的設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導,歡迎高校老師/同行前輩交流合作?。 技術范圍:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容:…

前端安全面試題匯總及參考答案

目錄 簡述 XSS 攻擊的原理及三種常見類型(存儲型、反射型、DOM 型) 如何在前端防御 XSS 攻擊?列舉編碼、過濾、CSP 策略的具體實現方式 富文本編輯器場景下如何安全處理用戶輸入的 HTML 內容? 如何通過 HttpOnly 屬性增強 Cookie 安全性?它與 XSS 防御的關系是什么? …

Linux驅動開發(1.基礎創建)

序言:從高層邏輯到底層硬件的回歸 在當今的軟件開發中,我們習慣于用高級語言構建抽象層——通過框架、庫和云服務快速實現功能。這種“軟邏輯”的便利性讓開發效率倍增,卻也逐漸模糊了我們對計算機本質的認知:一切代碼終將落地為…

Gradle本地配置文件分享

Gradle本地配置文件分享 allprojects {repositories {mavenLocal()maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }ma…

deepseek 本地部署

deepseek 本地部署 純新手教學,手把手5分鐘帶你在本地部署一個私有的deepseek,再也不用受網絡影響。流暢使用deepseek!!! 如果不想看文章,指路:Deep seek R1本地部署 小白超詳細教程 &#xff0…

HTML學習筆記(全)

基本結構 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title></title> </head> <body></body> </html> 基本標簽元素 標題&#xff08;heading&#xff09; <h1>一級標題</h1> &…

騰訊云對象存儲服務(COS)

騰訊云對象存儲服務&#xff08;COS&#xff09; 安全、可擴展、低成本的云存儲解決方案 騰訊云 對象存儲服務&#xff08;COS&#xff0c;Cloud Object Storage&#xff09; 是一種高可靠、高性能、可擴展的云存儲服務&#xff0c;專為海量非結構化數據&#xff08;如圖片、…

從ETL到數倉分層:大數據處理的“金字塔”構建之道

在當今數據驅動的時代&#xff0c;大數據處理已成為企業決策和業務優化的核心。而ETL&#xff08;Extract, Transform, Load&#xff09;作為數據處理的基石&#xff0c;其背后的數倉分層理念更是決定了數據處理的效率與質量。本文將深入探討ETL工作中的數倉分層理念&#xff0…

數字孿生對于新基建的價值淺析,算是拋磚引玉。

數字孿生&#xff08;Digital Twin&#xff09;作為一項融合物理世界與數字世界的關鍵技術&#xff0c;在新基建中扮演著虛實協同、智能決策、全生命周期管理的核心角色&#xff0c;其價值貫穿于基礎設施的設計、建設、運維到優化全流程。 一、核心價值&#xff1a;虛實映射與智…

從零開始實現大語言模型(十三):預訓練大語言模型GPTModel

1. 前言 使用梯度下降算法通過下一個token預測任務預訓練大語言模型GPTModel&#xff0c;前向傳播流程每次會輸入一個batch的長度均為context_len的訓練樣本&#xff0c;執行 batch_size context_len \text{batch\_size}\times\text{context\_len} batch_sizecontext_len次下…

QWQ大模型評測榜單

評測榜單說明 在數學推理基準AIME24上&#xff0c;QwQ-32B達到了79.5分&#xff0c;幾乎與DeepSeek-R1-617B的79.8分持平&#xff0c;遠超OpenAI o1-mini的63.6分&#xff0c;及相同尺寸的R1蒸餾模型。 在編程能力方面&#xff0c;QwQ-32B 在LiveCodeBench上獲得了63.4分&…