編譯環境
TDengine Database支持ARM平臺,目前的開發調試的環境如下:
aarch64:華為泰山ARM云服務器上,OS是銀河麒麟。
aarch32:樹莓派4B,OS是raspberrypi 4.19。
以下描述都是基于該環境的的操作結果。其他環境沒有驗證過,如果在其他環境(比如不同的ARM CPU或其他OS),可能會出現一些環境相關的問題,請在TDengine Database的上提交issue。
由于時間關系,還沒有完成交叉編譯的驗證,后續會基于主流的開源交叉編譯工具進行ARM版本的編譯。也歡迎感興趣的開發者參與,成為TDengine Database的貢獻者。
aarch64系統
華為泰山服務器
kylin@kylinos:~/git$ lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
每個核的線程數:1
每個座的核數: 2
Socket(s): 1
NUMA 節點: 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系統
樹莓派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、從獲取 TDengine工程:
~/git$ git clone //github.com/taosdata/TDengine.git
2、進入工程目錄完成編譯
~/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
然后進行make,
~/git/TDengine/debug$ sudo make
編譯成功后,在build目錄下會生成bin、lib兩個目錄,其中bin/taos、bin/taosd就是客戶端和服務端的執行程序;lib目錄里面庫文件。
可以直接在bin目錄下執行 ./taosd 啟動服務端進程(使用缺省配置文件:/etc/taos/taos.cfg),執行./taos 啟動客戶端shell。
二、打包方式
1、從獲取TDengine工程:
~/git$ git clone //github.com/taosdata/TDengine.git
2、進入工程目錄,執編譯、打包腳本:
~/git$ cd TDengine
如果是aarch64:
~/git/TDengine$ sudo ./packaging/release.sh -c aarch64
如果是aarch32:
~/git/TDengine$ sudo ./packaging/release.sh -c aarch32
命令成功完成后, TDengine服務端和客戶端的tar壓縮安裝包生成在當前目錄下的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是完全一致的,請參見: 。但是在一般的嵌入式ARM系統中,內存都比較小,因此,TDengine支持用戶可以根據不同的應用場景,通過配置參數來設置占用合適的內存大小。相關的參數如下:
- tables:每個vnode允許創建表的最大數目
- cache: 內存塊的大小(字節數)
- ablocks: 每張表平均的內存塊數
內存占用大小計算:tables * cache * ablocks。舉例,有下述SQL:
create database demo tables 100 cache 16384 ablocks 4
該SQL創建了一個庫demo, 每個vnode 允許創建100張表,內存塊為16384字節,每個表平均占用4個內存塊。主要的內存占用大小:100 * 4 * 16384 = 6.25MiB。這也是aarch32版本的缺省配置。



























