当前位置: 首页 > 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.xdnf.cn/news/1318573.html

相关文章:

  • vue封装请求拦截器 响应拦截器
  • 计算机网络 Session 劫持 原理和防御措施
  • 给纯小白的Python操作 PDF 笔记
  • 【算法】模拟专题
  • nertctl使用了解
  • B站 韩顺平 笔记 (Day 21)
  • Windows平台Frida逆向分析环境完整搭建指南
  • 机器学习05-朴素贝叶斯算法
  • 攻防世界—unseping(反序列化)
  • python的邮件发送及配置
  • 逆向Shell实战——红队技巧 vs 蓝队防御全攻略
  • Matlab数字信号处理——基于最小均方误差(MMSE)估计的自适应脉冲压缩算法复现
  • React 基础实战:从组件到案例全解析
  • Mysql笔记-错误条件\处理程序
  • 【Java后端】Spring Boot 集成 MyBatis 全攻略
  • 【前端基础】19、CSS的flex布局
  • 麒麟V10静默安装Oracle11g:lsnrctl、tnsping等文件大小为0的解决方案
  • 【编程实践】关于S3DIS数据集的问题
  • 官方正版在线安装office 365安装工具
  • react 错误边界
  • Linux系统分析 CPU 性能问题的工具汇总
  • STM32学习笔记13-通信协议I2CMPU6050
  • 海洋牧场助力可持续发展,保护海洋生态平衡
  • C语言学习笔记之文件操作
  • 基于Vue的个人博客网站的设计与实现/基于node.js的博客系统的设计与实现#express框架、vscode
  • 网络原理与编程实战:从 TCP/IP 到 HTTP/HTTPS
  • C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
  • 01数据结构-插入排序
  • 如何让AI视频模型(如Veo)开口说中文?一个顶级提示词的深度拆解
  • RabbitMQ入门:生产者和消费者示例