性能测试
大约 2 分钟约 732 字
openGemini作为一款开源的时序数据库系统,社区蓬勃发展是广大开发者共同的心愿。性能作为数据库最为关键指标之一,很大程度上决定了社区未来能走多远。另一方面,数据库已经成为了企业信息化建设的重要组成部分,而数据库的性能则是企业信息化建设的关键因素之一。数据库性能的好坏直接影响到企业的业务流程和效率,因此,对于数据库的性能优化是非常重要的。正是如此,社区一直以来都将性能优化工作作为社区长期工作来抓。
测试场景
项目 | 说明 |
---|---|
压测工具 | TSBS (https://github.com/timescale/tsbs) |
测试模型 | devops |
数据模型 | 1DB 1个表 10tag 10field |
数据量 | 30万时间线;25.92亿points,原始数据大小(gzip压缩) 88G |
节点数 | |
机器规格 | 32U128G |
写性能
数据库 | 并发数 | 30万时间线(rows/sec) | 磁盘大小 |
---|---|---|---|
openGemini v1.1.0-rc1 | 32 | 392,915.45 | 15GB |
InfluxDB 2.x OSS | 32 | 87,196.63 | 14GB |
国内其他 OSS | 32 | 361,871.25 | 20GB |
1 row = 10tag + 10field, 这里1个field类似于一个设备上的点位,换算为metrics,1 row = 10 metrics
纵向对比
场景 | 并发数 | v1.1.0-rc1(平均时延ms) | v1.0.1-(平均时延ms) |
---|---|---|---|
single-groupby-1-1-12 | 32 | 7.17 | 17.07 |
single-groupby-1-1-1 | 32 | 3.12 | 6.67 |
single-groupby-1-8-1 | 32 | 7.3 | 13.35 |
single-groupby-5-1-12 | 32 | 13.35 | 36.37 |
single-groupby-5-1-1 | 32 | 4.55 | 12.41 |
single-groupby-5-8-1 | 32 | 10.1 | 23.01 |
cpu-max-all-1 | 32 | 6.89 | 19.54 |
cpu-max-all-8 | 32 | 16.88 | 40.01 |
double-groupby-1 | 8 | 24,719 | 30,408.05 |
double-groupby-5 | 8 | 51,478.43 | 67,023.02 |
double-groupby-all | 8 | 77,594.52 | 85,673.76 |
lastpoint | 8 | 54,672.35 | 64,107.8 |
groupby-orderby-limit | 2 | 9,225.74 | 116,212.15 |
high-cpu-1 | 32 | 19.99 | 37.65 |
high-cpu-all | 1 | 35,201.1 | 109,319.78 |
场景说明,比如single-groupby-1-1-12 代表什么意思,见TSBS 基准测试场景介绍。
横向对比
场景 | 并发 | openGemini v1.1.0-rc1 | InfluxDB 2.x OSS | 国内其他 OSS |
---|---|---|---|---|
single-groupby-1-1-12 | 32 | 7.17 | 24.89 | 14.18 |
single-groupby-1-1-1 | 32 | 3.12 | 4.28 | 10.72 |
single-groupby-1-8-1 | 32 | 7.3 | 12.17 | 80.05 |
single-groupby-5-1-12 | 32 | 13.35 | 101.63 | 19.75 |
single-groupby-5-1-1 | 32 | 4.55 | 12.04 | 13.67 |
single-groupby-5-8-1 | 32 | 10.1 | 48.6 | 109.96 |
cpu-max-all-1 | 32 | 6.89 | 13.86 | 17.84 |
cpu-max-all-8 | 32 | 16.88 | 91.8 | 213.23 |
double-groupby-1 | 8 | 24,719 | 243,356.06 | 141,016.09 |
double-groupby-5 | 8 | 51,478.43 | 122,317.54 | 205,317.78 |
double-groupby-all | 8 | 77,594.52 | OOM | >5min |
lastpoint | 8 | 54,672.35 | OOM | 826,563.36 |
groupby-orderby-limit | 2 | 9,225.74 | OOM | 503,419.97 |
high-cpu-1 | 32 | 19.99 | 23.41 | 19.78 |
high-cpu-all | 1 | 35,201.1 | OOM | 查询失败 |
总结
- 相比v1.0.1版本,简单查询场景(single-*,cpu-*)提升2x-3x。复杂查询场景(double-*, last-*, high-cpu-all)提升20%-30%,即10秒左右,虽然提升幅度看似不大,但对于应用来说,这个结果是一个非常可观的性能提升。
- 相比其他时序数据库,openGemini具有明显性能优势。