TSBS 是什麼?為什麼時序資料庫 TDengine 會選擇它作為效能對比測試平臺?

TDengine發表於2023-03-01
去年 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 網路連線。配置簡表如下:

TSBS 是什麼?為什麼時序資料庫 TDengine 會選擇它作為效能對比測試平臺?

本次測試的對比軟體為 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 測試報告的測試背景介紹,如果你對測試結果感興趣,歡迎搜尋進入官網檢視完整報告。

想了解更多  的具體細節,歡迎大家在 上檢視相關原始碼。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014783/viewspace-2937615/,如需轉載,請註明出處,否則將追究法律責任。

相關文章