物联网设备管理平台致力于为客户提供高效、可靠的物联网解决方案。基于开源物联网平台进行深度二次开发,我们打造了功能强大、灵活易用的物联网平台,广泛应用于智能家居、智能工厂、智能城市等多个领域
一、标准资源要求
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,否则用户体验和稳定性无法保证。