有奖:语音产品征文挑战赛火热进行中> HOT

性能概述

时序数据库 CTSDB 由节点组成,单节点的规格和节点数量决定了 CTSDB 实例的处理能力。理论上: CTSDB 实例读写并发性能 = (某节点的性能 * 节点数量) 因此,节点规格越高,节点数量越多,实例的读写能力越强,而单节点的性能主要跟 CPU 和内存配置相关。实例的具体性能随着单节点配置、节点数量和写入字段数量等而改变。 本文档给出的测试数据是在指定参数下的参考值,仅作为选型参考依据,实际情况需要业务真实的测试。

性能测试

测试工具

测试步骤

1. 建表 命令如下:
#建立 metric(注意这里 tags 里只有一个 host,但当写入的数据有新的字段时,这些字段将自动作为 tag,放入 tags 里面)
curl -u {user}:{passwd} -XPUT {ctsdb_ip_port}/_metric/testa10?pretty -d '{
"tags": {
"http_code": "string"
},
"fields": {"count1":"long","count2":"long","count3":"long","count4":"long","count5":"long","count6":"long","count7":"long","count8":"long","count9":"long","count10":"long"
},
"time": {
"name": "timestamp",
"format": "epoch_second"
},
"options": {
"expire_day": -1,
"refresh_interval": "10s",
"number_of_shards": 3,
"number_of_replicas": 1,
"rolling_period": -1
}
}'
# 查询metric
curl {ctsdb_ip_port}/_metric/testa10?pretty
# 删除metric(同时会删除对应的所有数据)
curl -XDELETE {ctsdb_ip_port}/_metric/testa10
说明:
其中 {ctsdb_ip_port} 为时序数据库 CTSDB 访问端口,{user} 和 {passwd} 分别为用户名和密码。
2. 写入数据 使用脚本批量写入,脚本下载链接,参数简介如下:
- db_url string
实例的 vip 和 Vport (格式如 10.02.36.89:9200)
- metric_name string
需要写入的 metric 名称
- data_num int
一个客户端一次写入的记录数量
- threads_nmb int
写入并发数
- counts int
一个记录中 filed 的数量
运行脚本前请修改脚本第18行的 userpwd。
使用样例:
python testa.py 10.0.1.10:9200 testa10 4000 9 10
脚本输出: 分为两部分,params:选项参数,results:最终结果。
-------------- params --------------
put_url http://10.0.1.10:9200/testa10/doc/_bulk
dataNum: 4000
threads_nmb: 9
counts: 10
-------------- results --------------
start all threads 2018-12-25 20:10:24

exit all threads 2018-12-25 20:10:24
startTime: 1545739824.51
endTime: 1545739824.55
diffTime: 0.0414531230927
wps: 158450.850363

说明:
平均写入速率为 wps 字段输出的结果。

性能参考值

说明:
时序数据库 CTSDB 单节点配置和节点数可任意组合,本文只给出三种实例配置的参考值,其它配置下的性能值用户可根据 性能概述 的性能估算方式进行估算,也可基于测试脚本进行测试。
并发线程数:9 写入字段数:10
单节点配置
节点数
写入能力
1核4GB内存
3
3万点/秒 - 5万点/秒
4核20GB内存
3
9万点/秒 - 12万点/秒
8核40GB内存
3
11万点/秒 - 15万点/秒