OpenTSDB性能测试

一、测试环境

OpenTSDB单节点部署,底层HBase存储为7节点集群。每个节点由XenServer虚拟,虚拟的硬件配置相同。

单节点内存:16GB

单节点CPU:双核 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz  x86_64

HBase部署:RegionServer5节点,2HMaster节点(其中一个备用)。

HBase RegionServer最大JVM内存配置:4G

 

二、测试过程及结果记录

1测试单线程写入OpenTSDB速度,使用HTTP API请求。

样本数据:1-20设备ID(共20设备),每个设备500测点(K1-K350T1-T150),源数据格式(每个条目,相当于MySQL中的一行数据)为,每个字段都是String编码格式,其中Kn属于开关量,取值{0,1},Tn属于Double量。数据每秒产生一次,共产生12小时数据 (43200条)。一次HTTP写请求可以携带多个数据条目。HTTP写请求每批次(每次HTTP POST长度)数据体长度(字节,不是条目数)控制在8k(范围[8110, 8209])以下。HTTP写请求的数据体为JSON格式。

 测试结果:十条(一条一个设备,共十个设备,所有设备各有500测点)数据批量写入约为900ms

2、测试多线程写入一批数据到OpenTSDB耗时,使用HTTP API请求。

样本数据:同上,因数据每秒每台设备产生一条,积攒10s后一次性处理写入。产生10秒数据(共 5000条)。使用多线程(10线程,可配)并发写入,每线程处理50台设备。

时间戳截取:从开始启动截取一次,每个现成处理完最后一条数据各截取自己的时间戳,在这个过程中每个线程将写入5000/线程数条数据到OpenTSDB

测试结果:不同线程数并行处理耗时,单位毫秒(millisecond)。

线程数

开始时间戳

时间戳范围

时间间隔范围

10

1489729025703

[1489729053443,1489729053986]

[27740, 28283]

20

1489730351485

[1489730376983,1489730379312]

[25498, 27827]

测试5秒产生的数据写入耗时(线程数10)。

数据量

开始时间戳

时间戳范围

时间间隔范围

5秒

1489731656466

[1489731670147,1489731671317]

[13681, 14851]

 

三、结论

简单分析多线程环境下测试数据,10线程与20线程下10秒钟数据量的写入时间没有太大差别,20线程稍快。得出以下结论:

1. 10线程

平均写入速度为0.112ms/点,单线程平均每秒写入8928.57点。10线程总吞吐量为平均每秒89285.7点。

2. 20线程

平均写入速度为0.2133ms/点,单线程平均每秒写入4688.23点。20线程总吞吐量为平均每秒93764.6点。

你可能感兴趣的:(数据库)