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

一鍵獲取測(cè)試腳本,輕松驗(yàn)證“TSBS 時(shí)序數(shù)據(jù)庫性能基準(zhǔn)測(cè)試報(bào)告”

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

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

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

TDengine 一個(gè)重要的創(chuàng)新是其獨(dú)特的數(shù)據(jù)模型——為每個(gè)設(shè)備創(chuàng)建獨(dú)立的數(shù)據(jù)表(子表),并通過超級(jí)表(Super Table)在邏輯上和語義上對(duì)同一采集類型的設(shè)備進(jìn)行統(tǒng)一管理。針對(duì) DevOps 場(chǎng)景的數(shù)據(jù)內(nèi)容,我們?yōu)槊總€(gè)設(shè)備 (這里是 CPU)創(chuàng)建了一個(gè)表,用以存儲(chǔ)該表的時(shí)序數(shù)據(jù)。我們?cè)?TDengine 中使用 hostname 作為子表的名稱(因?yàn)閔ostname 可以作為每個(gè)設(shè)備的標(biāo)識(shí) ID),并使用如下的語句創(chuàng)建名為 CPU 的超級(jí)表,包含 10 個(gè)測(cè)量值和 10 個(gè)標(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)建了一個(gè)子表。由此可知,對(duì)于 100 個(gè)設(shè)備(CPU)的場(chǎng)景 一,我們將會(huì)建立 100 個(gè)子表。對(duì)于 4000 個(gè)設(shè)備的場(chǎng)景二,系統(tǒng)中將會(huì)建立 4000 個(gè)子表用以存儲(chǔ)各自對(duì)應(yīng)的數(shù)據(jù) 。

軟件版本和配置

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

TDengine

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

gitinfo: c90e2aa791ceb62542f6ecffe7bd715165f181e8

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

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

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

numOfVnodeFetchThreads           4

queryRspPolicy                   1

compressMsgSize             128000

SIMD-builtins                    1

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

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

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

TimescaleDB

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

一鍵獲取測(cè)試腳本,輕松驗(yàn)證“TSBS 時(shí)序數(shù)據(jù)庫性能基準(zhǔn)測(cè)試報(bào)告” - TDengine Database 時(shí)序數(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 版本是因?yàn)?TSBS 沒有對(duì)其進(jìn)行適配,所以選用了 InfluxDB 能夠運(yùn)行 TSBS 框架的最新版本。同樣,我們采用《TimescaleDB vs. InfluxDB》中推薦的方式配置 InfluxDB,將緩沖區(qū)配置為 80G,以便 1000W 設(shè)備寫入時(shí)能夠順利進(jìn)行,同時(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"

測(cè)試步驟

硬件準(zhǔn)備

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

一鍵獲取測(cè)試腳本,輕松驗(yàn)證“TSBS 時(shí)序數(shù)據(jù)庫性能基準(zhǔn)測(cè)試報(bào)告” - TDengine Database 時(shí)序數(shù)據(jù)庫

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

為運(yùn)行測(cè)試腳本,服務(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 (無需手動(dòng)安裝,測(cè)試腳本將自動(dòng)安裝)
  4. 編譯依賴:gcc , cmake, build-essential, git, libssl-dev (無需手動(dòng)安裝,測(cè)試腳本將自動(dòng)安裝)

開始前請(qǐng)做兩個(gè)配置:

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

獲取測(cè)試腳本

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

  1. 在客戶端機(jī)器,進(jìn)入測(cè)試目錄拉取代碼,默認(rèn)進(jìn)入 /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í)行對(duì)比測(cè)試

執(zhí)行以下命令:

nohup bash tsdbComparison.sh > test.log &

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

寫在最后

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