测试环境与工具

本文主要介绍本次测试的测试环境和工具使用方式。

测试环境要求

  • 测试使用的操作系统为Alibaba Cloud Linux 3.2104 64位。

  • 压测端和Lindorm时序引擎在同一个VPC网络中,使用VPC地址进行连接。

  • 本测试中压测端使用的机器规格为ecs.c6e.26xlarge。建议使用32C128G以上配置的机器。

Lindorm时序引擎规格

分别测试了4组Lindorm时序引擎的规格,存储类型均为标准型云存储。

  • 集群1:4核16GB * 3节点

  • 集群2:8核32GB *3节点

  • 集群3:16核64GB *3节点

  • 集群4:32核128GB *3节点

说明

  • 上述测试实例规格均使用Lindorm产品的公开售卖规格。

  • 测试实例的存储类型选用的是标准型云存储,选用性能型云存储可以获得更好的性能。

  • 测试实例的时序引擎版本为3.4.9

测试工具介绍

测试工具基于时序数据库领域应用最广的压测工具influxdb-comparisons,在此基础上进行了Lindorm的适配。

该测试中数据模型采用压测工具中的DevOps模型。这个数据模型的场景是:一组服务器需要定期报告系统和应用程序的指标,比如每10秒在一台服务器上的9个子系统(CPU、内存、磁盘、磁盘I/O、内核、网络、Redis、PostgreSQL和Nginx)上采样101个测量值,上报到时序数据库。

测试工具下载

通过下载压测工具,上传到压测客户端机器并解压后即可进行测试。

说明

关于该工具的使用方法介绍可参见influxdb-comparisons,整体的使用方式和思路和它类似。

写入测试

  • 生成写入数据

# ${scale} :生成数据的设备数量
# ${data_file} :生成的数据文件名
# ${batch_size} :batch的大小
GOGC=500 ./bulk_data_gen -format lindormtsdbbatch -use-case devops -seed 100 -sampling-interval 10s -scale-var ${scale} -batchSize ${batchsize}  > ${data_file}

  • 进行写入

# ${data_file} :上一步生成的文件名
# ${add} :Lindorm时序引擎的地址,形式为ip:port,  例如 ld-8vb458k154q7xxxx-proxy-tsdb.lindorm.rds.aliyuncs.com:8242
# ${workers} :写入并发大小
GOGC=500 ./bulk_load_lindormtsdb_batch -file ${data_file} -url ${add} -workers ${workers} -time-limit 10m

查询测试

  • 生成查询

# ${query_type} :查询的类型 
# ${scale} :scale的大小
# ${queryfile} :生成的包含查询的文件
GOGC=500 ./bulk_query_gen -seed 123 -queries 100000 -format lindormtsdb -use-case devops -query-type ${query_type} -scale-var ${scale} > ${queryfile}
说明

${query_type}的具体说明,请参见查询测试结果

  • 进行查询

# ${workers} :查询的并发数
# ${add} :Lindorm时序引擎的地址,形式为ip:port,  例如 ld-8vb458k154q7xxxx-proxy-tsdb.lindorm.rds.aliyuncs.com:8242
# ${queryfile} :上一步生成的包含查询语句的文件
GOGC=500 ./query_benchmarker_lindormtsdb -workers ${workers} -url ${add} -file ${queryfile}