TDengine 是一款专为时序数据打造的国产数据库产品,它可对TB量级的时序数据进行存储、分析和分发,常备应用于设备运行状态实时监测和预警等场景。
在前面的文章中我们曾经介绍过使用sysbench进行过数据库性能测试,但sysbench聚焦于mysql和postgresql这两种关系数据库,对其他数据库的支持几乎为零(曾支持过oracle但后来取消了)。因此这里我们使用更通用的测试框架JMeter进行性能测试。
环境信息
TDengine服务器 | TDengine驱动 | jmeter |
---|---|---|
3.0.0 | 3.0.2 | 5.5 |
添加依赖
将连接TDengine所需的jar包复制到jmeter安装目录下的lib目录:
taos-jdbcdriver-3.0.2.jar
fastjson-1.2.29.jar
准备数据库
在TDengine数据库里预先创建用于测试的库和表:
create database if not exists test vgroups 10 buffer 10;
测试发现create table
既可以创建stable也可以创建table,为避免歧义我们严格用create stable
来创建超级表:
create stable test.stable01 (time timestamp, col001 double, col002 double, col003 double, \
col004 double, col005 double, col006 double, col007 double, col008 double, col009 double, \
col010 double) tags (device varchar(20));
创建子表:
create table test.table01 using stable01 tags ('device01');
测试计划
在GUI模式下创建测试计划(tdengine_test.jmx):
执行测试
执行测试(-n表示不启动GUI,-t参数指定测试计划文件,-l指定测试csv格式的结果文件,-e表示测试结束后生成html格式报告,-o表示指定报告的路径名):
jmeter -n -t tdengine_test.jmx -l log1.jtl -e -o report1
测试机作为客户端,与TDengine服务不在同一个局域网内的情况下测试结果:
测试机作为客户端,与TDengine服务在同一个局域网内的情况下测试结果:
参考资料
https://jmeter.apache.org/usermanual/build-db-test-plan.html
https://jmeter.apache.org/usermanual/generating-dashboard.html
https://docs.taosdata.com/connector/java/
https://docs.taosdata.com/taos-sql/table/