测试工具

最近更新时间:2025-11-19 15:26:02

我的收藏

工具介绍

TSBS(Time Series Benchmark Suite)是一个专门用于时序数据库性能基准测试的开源工具套件。更多介绍,请参见 tsbs

安装要求

Go 语言:1.16+ 版本
依赖管理:Go Modules

运行指令

将测试工具压缩包 Time Series Benchmark Suite (TSBS) 上传至客户端环境,并解压,可看到工具可执行的运行指令。

运行指令
功能描述
运行示例
tsbs_generate_data
生成模拟的时序数据

./tsbs_generate_data \\
--use-case="cpu-only" \\ # 使用CPU监控数据模型
--seed=123 \\ # 固定随机种子,确保结果可重现
--scale=10000 \\ # 模拟10,000台设备
--timestamp-start="2016-01-01T00:00:00Z" \\ # 数据开始时间
--timestamp-end="2016-02-01T00:00:00Z" \\ # 数据结束时间(31天)
--log-interval="10s" \\ # 每10秒生成一个数据点
--format="influx" \\ # 生成InfluxDB格式数据
| gzip > data/influx-data-cpu-10000-30day.gz # 压缩存储
tsbs_load_influx
将生成的数据加载(写入)到 InfluxDB 中

cat data/influx-data-cpu-10000-30day.gz | gunzip | ./tsbs_load_influx \\
--urls=http://XX.XX.XX.XX:8086 \\ # CTSDB访问地址
--db-name=test \\ # 目标数据库名
--workers=10 \\ # 10个并发worker
--user=ctsdbi-mjhi**** \\ # 认证用户名
--password=X****@****\\ # 认证密码
--do-create-db=false # 不创建数据库(假设已存在)
tsbs_generate_queries
生成针对模拟数据的查询请求

./tsbs_generate_queries --use-case="cpu-only" --seed=123 --scale=10000 \\
--timestamp-start="2025-01-01T00:00:00Z" \\
--timestamp-end="2025-01-01T12:00:01Z" \\ # 查询12小时数据
--queries=100000 \\ # 生成10万个查询
--query-type="single-groupby-1-1-1" \\ # 查询类型
--format="influx" \\
| gzip > query/influx-100000queries-single-groupby-1-1-1-12h.gz
tsbs_run_queries_influx
在 InfluxDB 上执行生成的查询请求

cat query/influx-100000queries-single-groupby-1-1-1-12h.gz | gunzip | ./tsbs_run_queries_influx \\
--urls=http://XX.XX.XX.XX:8086 \\ # CTSDB 访问集群地址
--workers=320 \\ # 320个并发worker
--db-name=tsbs_test \\ # 查询的数据库
--print-interval 10000 # 每1万次查询打印进度