物聯網設備管理平臺致力于為客戶提供高效、可靠的物聯網解決方案。基于開源物聯網平臺進行深度二次開發,我們打造了功能強大、靈活易用的物聯網平臺,廣泛應用于智能家居、智能工廠、智能城市等多個領域
一、標準資源要求
-
CPU:建議至少 8 vCPU 起步,測試表明從 4 核升級到 8 核可顯著降低響應時間(從 200ms 降至 50ms)。
-
內存:推薦 16GB 以上,Cassandra 默認占用較高,可通過 JVM 參數限制其內存使用(如
-Xms4G -Xmx4G
)。 -
磁盤:使用 SSD,避免 I/O 阻塞;Cassandra 對磁盤吞吐非常敏感。
二、2核CPU + 2GB內存配置
在 2核CPU + 2GB內存 的極低資源限制下運行 ThingsBoard,必須“削骨瘦身”式調優,否則極易 OOM 或卡死。下面給出一份 “極限生存”版配置清單(生產環境仍建議升級硬件):
1. 安裝方式:選輕量組合
-
數據庫:PostgreSQL(比 Cassandra 省內存)
-
版本:ThingsBoard CE(非 PE),關閉所有微服務擴展。
? 2. JVM 內存壓到極限
編輯 /etc/thingsboard/conf/thingsboard.conf
:
# 總內存2G,給JVM 1.2G,留800M給OS和PostgreSQL
JAVA_OPTS="$JAVA_OPTS -Xms768m -Xmx1024m"
# 選用 SerialGC(比 G1 省內存)
JAVA_OPTS="$JAVA_OPTS -XX:+UseSerialGC"
# 強制盡快回收,減少堆碎片
JAVA_OPTS="$JAVA_OPTS -XX:MaxGCPauseMillis=200"
實測
Xmx1024m
是 ThingsBoard 啟動不 OOM 的上限;再低就會啟動失敗 。
? 3. PostgreSQL 降到“玩具”級
編輯 /etc/postgresql/*/main/postgresql.conf
:
max_connections = 20
shared_buffers = 128MB
effective_cache_size = 512MB
work_mem = 2MB
maintenance_work_mem = 64MB
wal_buffers = 1MB
checkpoint_segments = 3
random_page_cost = 2.0
重啟 PostgreSQL,并立即執行:
sudo -u postgres psql thingsboard -c "SELECT pg_reload_conf();"
? 4. ThingsBoard 功能“閹割”
-
徹底關閉規則引擎(如非必需)
yaml
在thingsboard.yml
中:復制
actors:rule:enabled: false
-
關閉遙測持久化(僅保留最新值)
在租戶配置里把 “存儲遙測數據” 設為 “不存儲”。 -
關閉審計日志
audit-log:enabled: false
-
縮短會話 TTL
security:jwt:refreshTokenExpTime: 900 # 15分鐘
? 5. 系統級壓榨
-
swap 文件:務必添加 2GB swap,防止 OOM-killer:
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile sudo mkswap /swapfile && sudo swapon /swapfile echo '/swapfile none swap defaults 0 0' | sudo tee -a /etc/fstab
-
文件句柄:
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf
-
日志級別調到 WARN: 修改
/usr/share/thingsboard/conf/logback.xml
:<logger name="org.thingsboard" level="WARN"/>
? 6. 運行后監控
-
必裝 htop + iostat,實時盯緊內存、swap、I/O。
-
定時重啟:每日低峰期重啟一次 ThingsBoard,清內存碎片:
sudo crontab -e 0 3 * * * systemctl restart thingsboard
? 7. 終極方案:換“更輕”的發行版
如果仍頻繁 OOM,可考慮換 ThingsBoard Edge(專為邊緣節點裁剪),或 ThingsBoard Gateway + 外部 ThingsBoard Cloud,把計算壓力轉移出去。
? 小結:極限調優清單(2C2G)
項目 | 極限值 | 備注 |
---|---|---|
JVM Xmx | 768m–1024m | 再低就起不來 |
PostgreSQL | shared_buffers 128M | 不能再高,否則和JVM搶 |
規則引擎 | 關閉 | 省 200–300 MB |
遙測存儲 | 關閉 | 省磁盤和內存 |
swap | 2 GB | 防止 OOM |
日志級別 | WARN | 省 I/O |
再次提醒:物聯網設備管理平臺配置僅適合開發/演示或**<50 設備**的極小場景。生產環境請至少升級到 4C4G,否則用戶體驗和穩定性無法保證。