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

双倍硬件=双倍性能?TDengine线性扩展能力深度实测验证!

软件扩展能力是软件架构设计中的一个关键要素,具有良好扩展能力的软件能够充分利用新增的硬件资源。当软件性能与硬件增加保持同步比例增长时,我们称这种现象为软件具有线性扩展能力。要实现这种线性扩展并不简单,它要求软件架构精心设计,能够最大化硬件性能的利用,同时减少内部资源消耗。这需要对现有架构进行深入的优化和调整。

测试目的

验证在带宽、IO 及内存不是瓶颈,仅 CPU 是瓶颈的情况下,写入速度应与 CPU 核数成正比。

测试方法

测试系统:使用 TDengine 官网发布的 docker 镜像,TDengine 版本为 V3.3.0.0

测试工具:taosBenchmark

表结构:TDengine 官网智能电表结构

增加 CPU 核数方法:docker 绑定固定数量 CPU 技术

两阶段配置方法:

1 ~ 4 核 VGROUP 为 4 ,写入线程数为 4

5 ~ 12 核 VGROUP 为 12 ,写入线程数为 12

使用两阶段配置,让 CPU 始终保持在瓶颈状态

测试参数

数据库:1 个

超级表:1 个

子表数:100 个

每子表行数:100W

总数据量:1 亿

测试结果

图片

磁盘为 SSD,写入最高可达 :350M/秒,IO 非常富余

带宽:客户端服务器同一台机器,带宽可认为无限制

图片

数据解读

  • 在 4 核时 CPU 使用率降至 88%,若再增加 CPU 可能 CPU 不会再成为瓶颈,所以升级配置至 12 个 VGROUPS、12 写入线程,让 CPU 始终保持在瓶颈状态下

  • 每增加一个 CPU,写入性能线性提升约 50W 左右,符合线程增长预期

  • 磁盘 IO 基本与写入速度增长保持一致

测试结论: 与预期一致

测试目的

验证在CPU、带宽及内存不是瓶颈,仅 IO 是瓶颈情况下,写入速度应与增加的磁盘个数成正比。

测试方法

测试系统:Linux Ubuntu 20.4 操作系统

硬件配置:CPU 24 核, 64 GB 内存,挂三块普通 5400 转低速机械盘(选择性能普通的硬盘,有利于很快打满 IO,达到 IO 成为瓶颈的条件 )

TDengine:版本 V3.3.0.0

测试工具:taosBenchmark

表结构: 

图片

(每行长度 32618 字节,使用大宽行,更能把 IO 打满)

增加磁盘方法:使用同级挂载多块磁盘技术

测试参数

数据库:1 个 VGROUP 16

超级表:1 个

子表数:100 个

每子表行数:1W

总数据量:100W

taosBenchmark :

写入线程数 = 16 个

写入方式 = stmt vgroup 绑定线程快速写入方法

测试结果

图片

  • CPU: 24 核 CPU ,大部分都为空闲,CPU 非常富余

  • 带宽:客户端服务器同一台机器,带宽可认为无限制

  • Commit 线程数是数据落盘的线程数,直接操作 IO 

  • 磁盘挂载到 3 块后,需求加大 Commit 线程数,才能打满 IO

图片

数据解读

从数据上可看出,每增加一块磁盘,写入性能也会成比例增长,新增磁盘 IO 被充分使用。

测试结论: 与预期一致

通过对 TDengine 服务器的 CPU 和磁盘资源进行扩展实验,我们验证了其对硬件资源的利用能力。实验结果表明,TDengine 展现出了显著的线性扩展能力,这证明了其具备优秀的架构设计和先进的设计理念。TDengine 能够有效地利用增加的硬件资源,这不仅提升了性能,也优化了资源的整体使用效率。这种能力是 TDengine 高效处理大规模数据需求的关键因素。

关于 TDengine

TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。

http://www.lryc.cn/news/581400.html

相关文章:

  • 类(JavaBean类)和对象
  • BM6 判断链表中是否有环(牛客)
  • Linux安装java后没法运行
  • 西门子PLC博图软件学习(一)
  • 手写 Vue 中虚拟 DOM 到真实 DOM 的完整过程
  • .NET9 实现排序算法(MergeSortTest 和 QuickSortTest)性能测试
  • LinkedList 链表数据结构实现 (OPENPPP2)
  • 前端面试专栏-算法篇:18. 查找算法(二分查找、哈希查找)
  • AI智能体革命:从对话机器到自主决策的进化之路 **——当AI长出“手和脑”,一场人机协作范式转移正在发生
  • AI小智项目全解析:软硬件架构与开发环境配置
  • 图灵完备之路(数电学习三分钟)----解码器
  • Pytest 测试发现机制详解:自动识别测试函数与模块
  • 理想汽车6月交付36279辆 第二季度共交付111074辆
  • 比较两个csv文件的内容是否一致
  • Python 机器学习核心入门与实战进阶 Day 3 - 决策树 随机森林模型实战
  • HTML初学者第三天
  • centos 7.6安装mysql8
  • 基于大模型的肾积水全周期预测与诊疗方案研究报告
  • 03每日简报20250705
  • Qt开发:QListWidget的介绍和使用
  • java整合itext pdf实现自定义PDF文件格式导出
  • 画笔的进化:生成式AI与艺术创造力的范式革命
  • 完成ssl不安全警告
  • 数据结构:数组:二分查找(Binary Search)
  • 用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame
  • Java-继承
  • 隐马尔可夫模型:语音识别系统的时序解码引擎
  • nginx部署发布Vite项目
  • 苹果系统查看已连接Wi-Fi密码的实用指南
  • 408第三季part2 - 计算机网络 - 物理层