小 T 导读:用户在做时序数据库(Time Series Database,TSDB)的选型调研时,通常要进行环境模拟测试,以观察所选数据库的性能优劣和成本损耗情况。为方便用户, TDengine 官方提供了一款名为 taosBenchmark 的测试工具,本文将会详细讲解其使用方式,供读者参考。

taosBenchmark (曾用名 taosdemo ) 是一个用于测试 TDengine 产品性能的工具。taosBenchmark 可以测试 TDengine 的插入、查询和订阅等功能的性能,它可以模拟由大量设备产生的大量数据,还可以灵活地控制数据库、超级表、标签列的数量和类型,数据列的数量和类型,子表的数量,每张子表的数据量,插入数据的时间间隔,taosBenchmark 的工作线程数量,是否以及如何插入乱序数据等。为了兼容过往用户的使用习惯,TDengine 安装包提供 了 taosdemo 作为 taosBenchmark 的软链接。

安装

taosBenchmark 有两种安装方式:

安装 TDengine 官方安装包的同时会自动安装 taosBenchmark,详情请参考 TDengine 安装(https://docs.taosdata.com/operation/pkg-install/)。 单独编译 taos-tools 并安装,详情请参考 taos-tools 仓库(https://github.com/taosdata/taos-tools)。

运行

配置和运行方式

taosBenchmark 需要在操作系统的终端执行,该工具支持两种配置方式:命令行参数和 JSON 配置文件。但这两种方式是互斥的,在使用配置文件时只能使用一个命令行参数 -f <json file> 指定配置文件;在使用命令行参数运行 taosBenchmark 并控制其行为时则不能使用 -f 参数而要用其它参数来配置。除此之外,taosBenchmark 还提供了一种特殊的运行方式,即无参数运行。

taosBenchmark 支持对 TDengine 做完备的性能测试,其所支持的 TDengine 功能分为三大类:写入、查询和订阅。这三种功能之间是互斥的,每次运行 taosBenchmark 只能选择其中之一。值得注意的是,所要测试的功能类型在使用命令行配置方式时是不可配置的,命令行配置方式只能测试写入性能。若要测试 TDengine 的查询和订阅性能,必须使用配置文件的方式,通过配置文件中的参数 filetype 指定所要测试的功能类型。

具体的命令行参数和 JSON 配置文件,可移步至 https://docs.taosdata.com/reference/taosbenchmark/ 进行查阅。但需要注意的是,在运行 taosBenchmark 之前一定要确保 TDengine 集群已经在正确运行。

无命令行参数运行

执行下列命令即可快速体验 taosBenchmark 对 TDengine 进行基于默认配置的写入性能测试。

taosBenchmark

在无参数运行时,taosBenchmark 默认连接 /etc/taos 下指定的 TDengine 集群,并在 TDengine 中创建一个名为 test 的数据库,test 数据库下创建名为 meters 的一张超级表,超级表下创建 10000 张表,每张表中写入 10000 条记录。注意,如果已有 test 数据库,这个命令会先删除该数据库后建立一个全新的 test 数据库。

使用命令行配置参数运行

在使用命令行参数运行 taosBenchmark 并控制其行为时,-f <json file> 参数不能使用。所有配置参数都必须通过命令行指定。以下是使用命令行方式测试 taosBenchmark 写入性能的一个示例。

taosBenchmark -I stmt -n 200 -t 100

在上面的命令中, taosBenchmark 将创建一个名为test的数据库,在其中建立一张超级表meters,在该超级表中建立 100 张子表并使用参数绑定的方式为每张子表插入 200 条记录。

使用配置文件运行

taosBenchmark 安装包中提供了配置文件的示例,位于<install_directory>/examples/taosbenchmark-json 下,使用如下命令行即可运行 taosBenchmark 并通过配置文件控制其行为。

taosBenchmark -f <json file>

更多配置相关内容,参考 https://docs.taosdata.com/reference/taosbenchmark/ 。如在实践中遇到更多实际问题,联系小 T 进入指定的 TDengine 官方用户群,专业的社区技术人员会帮助你答疑解惑,理顺思路。

欢迎搜索:tdengine 添加小助手小 T,加入物联网技术讨论群,第一时间了解TDengine 官方信息,与关注前沿技术的同学们共同探讨新技术、新玩法。

想了解更多 TDengine Database 的具体细节,欢迎大家在GitHub上查看相关源代码。