六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

一鍵獲取測試腳本,輕松驗證“TSBS 時序數(shù)據(jù)庫性能基準測試報告”

基于 TDengine 3.0 TSBS 基準測試報告,此前我們已經(jīng)輸出了系列文——為什么選擇 TSBS 作為測試平臺寫入性能對比、查詢性能對比,分別就 TSBS 及測試環(huán)境、寫入性能及開銷、查詢性能及開銷進行了相關(guān)解讀。在本篇文章中,我們將為想要驗證本報告測試結(jié)果的小伙伴,分享進行報告測試復(fù)現(xiàn)的詳細步驟。

數(shù)據(jù)建模

在 TSBS 框架中, TimescaleDB 和 InfluxDB 會自動創(chuàng)建相應(yīng)的數(shù)據(jù)模型并生成對應(yīng)格式的數(shù)據(jù)。本文不再贅述其具體的數(shù)據(jù)建模方式,只介紹 TDengine 的數(shù)據(jù)建模策略。

TDengine 一個重要的創(chuàng)新是其獨特的數(shù)據(jù)模型——為每個設(shè)備創(chuàng)建獨立的數(shù)據(jù)表(子表),并通過超級表(Super Table)在邏輯上和語義上對同一采集類型的設(shè)備進行統(tǒng)一管理。針對 DevOps 場景的數(shù)據(jù)內(nèi)容,我們?yōu)槊總€設(shè)備 (這里是 CPU)創(chuàng)建了一個表,用以存儲該表的時序數(shù)據(jù)。我們在 TDengine 中使用 hostname 作為子表的名稱(因為hostname 可以作為每個設(shè)備的標(biāo)識 ID),并使用如下的語句創(chuàng)建名為 CPU 的超級表,包含 10 個測量值和 10 個標(biāo)簽。

create stable cpu (ts timestamp,usage_user bigint,usage_system bigint,usage_idle bigint,usage_nice bigint,usage_iowait bigint,usage_irq bigint,usage_softirq bigint,usage_steal bigint,usage_guest bigint,usage_guest_nice bigint)
tags (hostname varchar(30), region varchar(30),datacenter varchar(30),rack varchar(30),os varchar(30),arch varchar(30),team varchar(30),service varchar(30),service_version varchar(30),service_environment varchar(30))

然后 ,我們使用如下語句創(chuàng)建名為 host_0 的子表:

create table host_0 using cpu (hostname,region,datacenter,rack,os,arch,team,service,service_version,service_environment)
tags ('host_0','eu-central-1','eu-central-1a','6','Ubuntu15.10','x86','SF','19','1','test')

上述語句創(chuàng)建了一個子表。由此可知,對于 100 個設(shè)備(CPU)的場景 一,我們將會建立 100 個子表。對于 4000 個設(shè)備的場景二,系統(tǒng)中將會建立 4000 個子表用以存儲各自對應(yīng)的數(shù)據(jù) 。

軟件版本和配置

本報告僅僅比較 TDengine ( Time Series Database )、InfluxDB 與 TimeScaleDB, 下面對使用的版本和配置做出說明。

TDengine

我們直接采用 TDengine Ver3.0,從 GitHub 克隆 TDengine 代碼編譯版本作為性能對比的版本。

gitinfo: c90e2aa791ceb62542f6ecffe7bd715165f181e8

在服務(wù)器上編譯安裝運行。

cmake .. -DDISABLE_ASSERT=true -DSIMD_SUPPORT=true -DCMAKE_BUILD_TYPE=Release  -DBUILD_TOOLS=false
make -j  && make install

在 TDengine 的配置文件中設(shè)置了四個涉及查詢的配置參數(shù)。

numOfVnodeFetchThreads           4

queryRspPolicy                   1

compressMsgSize             128000

SIMD-builtins                    1

參數(shù)設(shè)置解讀:

  • numOfVnodeFetchThreads 設(shè)置了 Vnode 的 Fetch 線程數(shù)量為 4 個,
  • queryRspPolicy 用來打開 query response 快速返回機制
  • compressMsgSize 的作用是自動壓縮 TDengine 在傳輸層上大于 128,000 bytes 的消息
  • 如果 CPU 支持,SIMD-builtins 可以啟用內(nèi)置的 FMA/AVX/AVX2 硬件加速

如上所述,TDengine 建庫默認創(chuàng)建 6 個 vnodes,即創(chuàng)建的表會按照表名隨機分配到 6 個虛擬節(jié)點(virtual node, VNode) 中。打開 LRU 緩存,設(shè)置為 last_row 緩存模式。對于場景一和場景二,stt_trigger 設(shè)置為 1,此時 TDengine 會準備一個 Sorted Time-series Table (STT) 文件,當(dāng)單表寫入量小于 minimum rows 時,數(shù)據(jù)會直接保存在 STT 文件中,當(dāng) STT 文件中無法容納新數(shù)據(jù)時,系統(tǒng)就會將 STT 中的數(shù)據(jù)整理后再寫入到數(shù)據(jù)文件中。對于其他的場景(場景三、四、五),stt_trigger 設(shè)置為 8,即允許最多生成 8 個 STT 文件。針對表較多的場景,需要適度增加 STT 的值,以此來獲得更好的寫入性能。

TimescaleDB

為確保結(jié)果具有可比性,我們選用 TimescaleDB 版本 version 2.6.0。為獲得較好的性能,TimescaleDB 需要針對不同的場景設(shè)置不同的 Chunk 參數(shù),不同場景下參數(shù)的設(shè)置如下表所示。

一鍵獲取測試腳本,輕松驗證“TSBS 時序數(shù)據(jù)庫性能基準測試報告” - TDengine Database 時序數(shù)據(jù)庫

上述參數(shù)的設(shè)置,充分參考了《TimescaleDB vs. InfluxDB》(如下鏈接) 中推薦的配置參數(shù)設(shè)置,以確保能夠最大化寫入性能指標(biāo)。

TimescaleDB vs. InfluxDB: Purpose Built Differently for Time-Series Data. https://www.timescale.com/blog/timescaledb-vs-influxdb-for-time-series-data-timescale-influx-sql-nosql-36489299877/

InfluxDB

我們選擇了 InfluxDB version 1.8.10。這里沒有使用 InfluxDB 最新的 2.x 版本是因為 TSBS 沒有對其進行適配,所以選用了 InfluxDB 能夠運行 TSBS 框架的最新版本。同樣,我們采用《TimescaleDB vs. InfluxDB》中推薦的方式配置 InfluxDB,將緩沖區(qū)配置為 80G,以便 1000W 設(shè)備寫入時能夠順利進行,同時開啟 Time Series Index(TSI)。配置系統(tǒng)在系統(tǒng)插入數(shù)據(jù)完成 30s 后開始數(shù)據(jù)壓縮。

cache-max-memory-size = "80g"
max-values-per-tag = 0
index-version = "tsi1"
compact-full-write-cold-duration = "30s"

測試步驟

硬件準備

為達到與 TimescaleDB vs. InfluxDB 對比報告中的環(huán)境高度接近,我們使用亞馬遜 AWS 的 EC2 提供的 r4.8xlarge 類型實例作為基礎(chǔ)運行平臺,包括 1 臺服務(wù)器、1 臺客戶端共兩個節(jié)點構(gòu)成的環(huán)境??蛻舳伺c服務(wù)器硬件配置完全相同,客戶端與服務(wù)器使用 10 Gbps 網(wǎng)絡(luò)連接。配置簡表如下:

一鍵獲取測試腳本,輕松驗證“TSBS 時序數(shù)據(jù)庫性能基準測試報告” - TDengine Database 時序數(shù)據(jù)庫

服務(wù)器環(huán)境準備

為運行測試腳本,服務(wù)器 OS 需要是 ubuntu20 以上的系統(tǒng)。AWS EC2 的服務(wù)器系統(tǒng)信息如下:

  1. OS: Linux tv5931 5.15.0-1028-aws #32~20.04.1-Ubuntu SMP Mon Jan 9 18:02:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
  2. Gcc:gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04)
  3. 基礎(chǔ)環(huán)境,版本信息為:Go1.16.9 , python3.8 , pip20.0.2 (無需手動安裝,測試腳本將自動安裝)
  4. 編譯依賴:gcc , cmake, build-essential, git, libssl-dev (無需手動安裝,測試腳本將自動安裝)

開始前請做兩個配置:

  1. client 和 server 配置 ssh 訪問免密,以便腳本可不暴露密碼,可參考文檔:免密配置(https://blog.csdn.net/qq_38154295/article/details/121582534)。
  2. 保證 client 和 server 之間所有端口開放。

獲取測試腳本

為便于重復(fù)測試,隱藏繁瑣的下載、安裝、配置、啟動、匯總結(jié)果等細節(jié),整個 TSBS 的測試過程被封裝成一個測試腳本。重復(fù)本測試報告,需要先下載該測試腳本,腳本暫支持 ubuntu20 以上的系統(tǒng)。以下操作要求具有 root 權(quán)限。

  1. 在客戶端機器,進入測試目錄拉取代碼,默認進入 /usr/local/src/ 目錄:
cd /usr/local/src/ && apt install git && git clone https://github.com/taosdata/tsbs.git && cd tsbs/scripts/tsdbComp 

2. 修改配置文件 test.ini 中服務(wù)端和客戶端的 IP 地址(這里配置 AWS 的私網(wǎng)地址即可)和 hostname,如果服務(wù)器未配置免密,還需要配置服務(wù)器端的 root 密碼:

clientIP="192.168.0.203"   #client ip
clientHost="trd03"         #client hostname
serverIP="192.168.0.204"   #server ip
serverHost="trd04"         #server hostname
serverPass="taosdata123"   #server root password

一鍵執(zhí)行對比測試

執(zhí)行以下命令:

nohup bash tsdbComparison.sh > test.log &

測試腳本將自動安裝 TDengine、InfluxDB、TimeScaleDB 等軟件,并自動運行各種對比測試項。在目前的硬件配置下,整個測試跑完需要大約一天半的時間。測試結(jié)束后,將自動生成 CSV 格式的對比測試報告,并存放在客戶端的 /data2 目錄。

寫在最后

閱讀完畢,你一定更加深入地了解了 TDengine 的數(shù)據(jù)建模、三大數(shù)據(jù)庫測試版本和配置,以及如何運用測試腳本進行一鍵復(fù)現(xiàn)。如果有小伙伴想要驗證 TDengine 的報告結(jié)果,歡迎按照上述步驟進行操作,檢驗測試結(jié)果,有任何問題都歡迎大家和我們及時溝通?,F(xiàn)在添加小T vx:tdengine1,可以邀請你加入 TDengine 用戶交流群,和更多志同道合的開發(fā)者一起聊技術(shù)、聊實戰(zhàn)。