当前位置: 首页 > news >正文

thingsboard 服务器在2核CPU、2G内存资源配置下如何调优提速,适合开发/演示

物联网设备管理平台致力于为客户提供高效、可靠的物联网解决方案。基于开源物联网平台进行深度二次开发,我们打造了功能强大、灵活易用的物联网平台,广泛应用于智能家居、智能工厂、智能城市等多个领域

一、标准资源要求

  • 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 功能“阉割”

  • 彻底关闭规则引擎(如非必需)
    thingsboard.yml 中:

    yaml

    复制

    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 Xmx768m–1024m再低就起不来
PostgreSQLshared_buffers 128M不能再高,否则和JVM抢
规则引擎关闭省 200–300 MB
遥测存储关闭省磁盘和内存
swap2 GB防止 OOM
日志级别WARN省 I/O

再次提醒:物联网设备管理平台配置仅适合开发/演示或**<50 设备**的极小场景。生产环境请至少升级到 4C4G,否则用户体验和稳定性无法保证。

http://www.dtcms.com/a/335763.html

相关文章:

  • 飞算JavaAI赋能高吞吐服务器模拟:从0到百万级QPS的“流量洪峰”征服之旅
  • C#读取文件, IO 类属性及使用示例
  • [GLM-4.5] GLM-4.5模型 | Claude Code服务集成
  • Qt 5.5 的安装与配置(使用 VSCode编辑)
  • React 基础实战:从组件到案例全解析
  • Talk2BEV论文速读
  • 什么叫作数据处理?数据处理和数据治理是什么关系
  • Java StringBuffer使用详解
  • Spring MVC 九大组件源码深度剖析(四):HandlerMapping - 请求映射的玄机
  • 电力设备状态监测与健康管理:基于多源异构数据融合的技术实现
  • 【龙泽科技】汽车车身测量与结构件更换仿真教学软件【GEELY+CHIEF】
  • Wasserstein GAN:如何解决GANS训练崩溃,深入浅出数学原理级讲解WGAN与WGAN-GP
  • (机器学习)监督学习 vs 非监督学习
  • 机器学习05-朴素贝叶斯算法
  • Elasticsearch 在向量捜索中使用 Direct I0
  • java-maven
  • 佳文赏读 || (CVPR 2025新突破) Robobrain:机器人操作从抽象到具体的统一大脑模型(A Unified Brain Model)
  • 【教程】笔记本安装FnOS设置合盖息屏不休眠
  • Pulsar存储计算分离架构设计之存储层BookKeeper(上)
  • Android 组件封装实践:从解耦到架构演进
  • JavaWeb前端(HTML,CSS具体案例)
  • 【基础】贪心 区间覆盖
  • GANs生成对抗网络生成手写数字的Pytorch实现
  • 基于Spring Boot+Vue的莱元元电商数据分析系统 销售数据分析 天猫电商订单系统
  • 【网络安全】Webshell的绕过——绕过动态检测引擎WAF-缓存绕过(Hash碰撞)
  • 系统学习算法 专题十七 栈
  • Vue中 v-if 和 v-show 的区别
  • 数据一致性与 MVCC 理解
  • TCP和UCP的区别
  • 深入解析Tomcat Processor的协议处理机制