編譯環(huán)境
TDengine Database支持ARM平臺,目前的開發(fā)調(diào)試的環(huán)境如下:
aarch64:華為泰山ARM云服務(wù)器上,OS是銀河麒麟。
aarch32:樹莓派4B,OS是raspberrypi 4.19。
以下描述都是基于該環(huán)境的的操作結(jié)果。其他環(huán)境沒有驗證過,如果在其他環(huán)境(比如不同的ARM CPU或其他OS),可能會出現(xiàn)一些環(huán)境相關(guān)的問題,請在TDengine Database的GitHub上提交issue。
由于時間關(guān)系,還沒有完成交叉編譯的驗證,后續(xù)會基于主流的開源交叉編譯工具進(jìn)行ARM版本的編譯。也歡迎感興趣的開發(fā)者參與,成為TDengine Database的貢獻(xiàn)者。
aarch64系統(tǒng)
華為泰山服務(wù)器
kylin@kylinos:~/git$ lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
每個核的線程數(shù):1
每個座的核數(shù): 2
Socket(s): 1
NUMA 節(jié)點(diǎn): 1
L1d 緩存: 64K
L1i 緩存: 64K
L2 緩存: 512K
L3 緩存: 32768K
NUMA node0 CPU(s): 0,1
銀河麒麟OS
kylin@kylinos:~/git$ uname -a
Linux kylinos 4.15.0-58-generic #64kord1k1 SMP Thu Aug 15 15:51:07 CST 2019 aarch64 aarch64 aarch64 GNU/Linux
aarch32系統(tǒng)
樹莓派4B
pi@raspberrypi:~/git$ lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Vendor ID: ARM
Model: 3
Model name: Cortex-A72
Stepping: r0p3
CPU max MHz: 1500.0000
CPU min MHz: 600.0000
BogoMIPS: 108.00
Flags: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva vfpd32 lpae evtstrm crc32
樹莓派官方OS
pi@raspberrypi:~/git$ uname -a
Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
TDengine的編譯方式
一、make方式
1、從github 獲取 TDengine工程:
~/git$ git clone https://github.com/taosdata/TDengine.git
2、進(jìn)入工程目錄完成編譯
~/git$ cd TDengine
~/git/TDengine$ mkdir debug
~/git/TDengine$ cd debug
如果是aarch64:
~/git/TDengine/debug$ sudo cmake .. -DCPUTYPE=aarch64
如果是aarch32:
~/git/TDengine/debug$ sudo cmake .. -DCPUTYPE=aarch32
然后進(jìn)行make,
~/git/TDengine/debug$ sudo make
編譯成功后,在build目錄下會生成bin、lib兩個目錄,其中bin/taos、bin/taosd就是客戶端和服務(wù)端的執(zhí)行程序;lib目錄里面庫文件。
可以直接在bin目錄下執(zhí)行 ./taosd 啟動服務(wù)端進(jìn)程(使用缺省配置文件:/etc/taos/taos.cfg),執(zhí)行./taos 啟動客戶端shell。
二、打包方式
1、從github獲取TDengine工程:
~/git$ git clone https://github.com/taosdata/TDengine.git
2、進(jìn)入工程目錄,執(zhí)編譯、打包腳本:
~/git$ cd TDengine
如果是aarch64:
~/git/TDengine$ sudo ./packaging/release.sh -c aarch64
如果是aarch32:
~/git/TDengine$ sudo ./packaging/release.sh -c aarch32
命令成功完成后, TDengine服務(wù)端和客戶端的tar壓縮安裝包生成在當(dāng)前目錄下的release目錄中。
aarch64安裝包:
~/git/TDengine$ ll release/
總用量 6884
drwxr-xr-x 2 root root 4096 12月 4 16:58 ./
drwxrwxr-x 13 kylin kylin 4096 12月 4 16:58 ../
-rw-r--r-- 1 root root 4426874 12月 4 16:58 TDengine-client-1.6.6.0-Linux-aarch64.tar.gz
-rw-r--r-- 1 root root 2611591 12月 4 16:58 TDengine-client-1.6.6.0-Linux-aarch64.tar.gz
aarch32安裝包:
~/git/TDengine$ ll release/
-rw-r--r-- 1 root root 1026874 2月 9 16:58 TDengine-client-1.6.6.0-Linux-aarch32.tar.gz
-rw-r--r-- 1 root root 1911591 2月 9 16:58 TDengine-server-1.6.6.0-Linux-aarch32.tar.gz
配置
ARM的配置方式與X64是完全一致的,請參見: 服務(wù)端配置 。但是在一般的嵌入式ARM系統(tǒng)中,內(nèi)存都比較小,因此,TDengine支持用戶可以根據(jù)不同的應(yīng)用場景,通過配置參數(shù)來設(shè)置占用合適的內(nèi)存大小。相關(guān)的參數(shù)如下:
- tables:每個vnode允許創(chuàng)建表的最大數(shù)目
- cache: 內(nèi)存塊的大?。ㄗ止?jié)數(shù))
- ablocks: 每張表平均的內(nèi)存塊數(shù)
內(nèi)存占用大小計算:tables * cache * ablocks。舉例,有下述SQL:
create database demo tables 100 cache 16384 ablocks 4
該SQL創(chuàng)建了一個庫demo, 每個vnode 允許創(chuàng)建100張表,內(nèi)存塊為16384字節(jié),每個表平均占用4個內(nèi)存塊。主要的內(nèi)存占用大小:100 * 4 * 16384 = 6.25MiB。這也是aarch32版本的缺省配置。



互聯(lián)網(wǎng).png)



-1.png)







證.png)


伙伴.png)
伙伴.png)
伙伴.png)



