无码人妻精品一区二区三18禁,影音先锋男人AV橹橹色,污污污污污污www网站免费,日韩成人av无码一区二区三区,欧美性受xxxx狂喷水

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

基于 TDengine 3.0 TSBS 基準測試報告,此前我們已經輸出了系列文——為什么選擇 TSBS 作為測試平臺寫入性能對比查詢性能對比,分別(bie)就 TSBS 及(ji)測(ce)試環境、寫入(ru)性能(neng)及(ji)開(kai)銷、查詢性能(neng)及(ji)開(kai)銷進行(xing)(xing)了(le)相關解讀。在本篇文章中,我們將(jiang)為想要驗證本報告測(ce)試結果的小(xiao)伙伴(ban),分享進行(xing)(xing)報告測(ce)試復現的詳(xiang)細步驟(zou)。

數據建模

在 TSBS 框架中, TimescaleDB 和 InfluxDB 會自動創建相應的數(shu)(shu)據(ju)(ju)模(mo)型并生成對應格式的數(shu)(shu)據(ju)(ju)。本文(wen)不再贅述其(qi)具體的數(shu)(shu)據(ju)(ju)建模(mo)方(fang)式,只介紹 TDengine 的數(shu)(shu)據(ju)(ju)建模(mo)策略。

TDengine 一(yi)個(ge)重要的創新是(shi)其獨特(te)的數(shu)據模(mo)型——為(wei)(wei)每個(ge)設(she)(she)備(bei)(bei)創建(jian)獨立的數(shu)據表(biao)(biao)(biao)(biao)(子表(biao)(biao)(biao)(biao)),并通過超級表(biao)(biao)(biao)(biao)(Super Table)在邏(luo)輯上和(he)語義上對同一(yi)采集(ji)類型的設(she)(she)備(bei)(bei)進行(xing)統一(yi)管理。針(zhen)對 DevOps 場景的數(shu)據內容(rong),我(wo)們為(wei)(wei)每個(ge)設(she)(she)備(bei)(bei) (這里(li)是(shi) CPU)創建(jian)了一(yi)個(ge)表(biao)(biao)(biao)(biao),用以存(cun)儲該表(biao)(biao)(biao)(biao)的時序數(shu)據。我(wo)們在 TDengine 中(zhong)使用 hostname 作(zuo)為(wei)(wei)子表(biao)(biao)(biao)(biao)的名(ming)稱(因為(wei)(wei)hostname 可以作(zuo)為(wei)(wei)每個(ge)設(she)(she)備(bei)(bei)的標識(shi) ID),并使用如下的語句創建(jian)名(ming)為(wei)(wei) CPU 的超級表(biao)(biao)(biao)(biao),包含 10 個(ge)測量值(zhi)和(he) 10 個(ge)標簽。

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))

然(ran)后 ,我們使用(yong)如下語句(ju)創建名(ming)為(wei) 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')

上述語(yu)句創建了一(yi)個(ge)(ge)(ge)子表(biao)。由此(ci)可知(zhi),對(dui)于 100 個(ge)(ge)(ge)設備(CPU)的(de)場景(jing) 一(yi),我們(men)將會(hui)建立(li) 100 個(ge)(ge)(ge)子表(biao)。對(dui)于 4000 個(ge)(ge)(ge)設備的(de)場景(jing)二(er),系統中將會(hui)建立(li) 4000 個(ge)(ge)(ge)子表(biao)用以存儲各自對(dui)應的(de)數據 。

軟件版本和配置

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

TDengine

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

gitinfo: c90e2aa791ceb62542f6ecffe7bd715165f181e8

在服務器(qi)上(shang)編譯(yi)安裝運(yun)行(xing)。

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

在(zai) TDengine 的配(pei)置文件(jian)中(zhong)設(she)置了四個(ge)涉(she)及查詢的配(pei)置參數。

numOfVnodeFetchThreads           4

queryRspPolicy                   1

compressMsgSize             128000

SIMD-builtins                    1

參數設置解讀:

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

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

TimescaleDB

為確保(bao)結果(guo)具有可(ke)比性(xing),我(wo)們選用 TimescaleDB 版本 version 2.6.0。為獲得較(jiao)好的(de)(de)性(xing)能,TimescaleDB 需要針(zhen)對不同(tong)(tong)的(de)(de)場景設(she)置不同(tong)(tong)的(de)(de) Chunk 參數(shu),不同(tong)(tong)場景下(xia)參數(shu)的(de)(de)設(she)置如下(xia)表所示。

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

上述參(can)(can)數(shu)(shu)的(de)(de)設置,充(chong)分參(can)(can)考了《TimescaleDB vs. InfluxDB》(如下鏈接) 中(zhong)推(tui)薦(jian)的(de)(de)配置參(can)(can)數(shu)(shu)設置,以確保能(neng)夠最大(da)化寫入性(xing)能(neng)指(zhi)標。

TimescaleDB vs. InfluxDB: Purpose Built Differently for Time-Series Data.

InfluxDB

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

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

測試步驟

硬件準備

為(wei)(wei)達到與(yu) TimescaleDB vs. InfluxDB 對比報告中的環境(jing)高度接(jie)近,我們使用(yong)(yong)亞(ya)馬遜 AWS 的 EC2 提供的 r4.8xlarge 類型實例(li)作(zuo)為(wei)(wei)基礎運行平臺(tai),包括(kuo) 1 臺(tai)服務器(qi)(qi)、1 臺(tai)客(ke)(ke)(ke)戶端(duan)(duan)共兩個節點構成的環境(jing)。客(ke)(ke)(ke)戶端(duan)(duan)與(yu)服務器(qi)(qi)硬件(jian)配置完(wan)全(quan)相同,客(ke)(ke)(ke)戶端(duan)(duan)與(yu)服務器(qi)(qi)使用(yong)(yong) 10 Gbps 網絡(luo)連接(jie)。配置簡表如(ru)下:

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

服務器環境準備

為運行測試腳本,服務器 OS 需(xu)要是 ubuntu20 以上的系統(tong)。AWS EC2 的服務器系統(tong)信息(xi)如下:

  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. 基礎環境,版本信息為:Go1.16.9 , python3.8 , pip20.0.2 (無需手動安裝,測試腳本將自動安裝)
  4. 編譯依賴:gcc , cmake, build-essential, git, libssl-dev (無需手動安裝,測試腳本將自動安裝)

開始(shi)前(qian)請做(zuo)兩個(ge)配置(zhi):

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

獲取測試腳本

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

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

2. 修改配置(zhi)(zhi)文件 test.ini 中(zhong)服(fu)務(wu)端和(he)客戶端的(de) IP 地址(zhi)(這里配置(zhi)(zhi) AWS 的(de)私網(wang)地址(zhi)即可)和(he) hostname,如果服(fu)務(wu)器(qi)未配置(zhi)(zhi)免密,還需要配置(zhi)(zhi)服(fu)務(wu)器(qi)端的(de) root 密碼(ma):

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

一鍵執行對比測試

執行以下命令:

nohup bash tsdbComparison.sh > test.log &

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

寫在最后

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