TDengine 线性扩展能力测试出结果了!满足你的需求了吗?

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

 

为了验证 TDengine 是否具备线性扩展能力,我们可以采取以下测试方法:首先识别出可能成为性能瓶颈的硬件资源,然后逐步增加这类资源,观察软件性能的变化。下面我们将从计算机资源中最常见的扩展 CPU 和磁盘两方面来验证 TDengine 的线性扩展能力。

TDengine CPU 线性扩展能力

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

测试方法:

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

测试工具:taosBenchmark 

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

增加 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 基本与写入速度增长保持一致

测试结论: 与预期一致

TDengine 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 线程数是数据落盘的线程数,负责直接写磁盘

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

数据解读:

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

测试结论: 与预期一致

总结

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

posted @ 2024-07-02 09:55  涛思数据TDengine  阅读(15)  评论(0编辑  收藏  举报