这篇档介绍 TDSQL Boundless HBase 兼容接口的性能测试结果。测试采用业界标准的 YCSB(Yahoo! Cloud Serving Benchmark)工具,覆盖多种典型业务场景,全面评估 TDSQL Boundless HBase 兼容接口在不同负载下的吞吐量和延迟表现。
相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。
三、硬件配置
| 配置项 |
规格 |
| CPU |
16核 |
| 内存 |
32GB |
| 节点数 |
4节点 |
| 存储类型 |
云盘 |
四、数据规模
| 参数 |
值 |
| 总数据行数 |
3亿行 |
| 列族数量 |
1个(单 CF) |
| 每行列数 |
100列 |
| Value 大小 |
20Bytes |
| 分区数量 |
8 |
| 测试时长 |
300秒/测试项 |
五、软件版本
| 节点类型 |
版本 |
| HyperNode |
V21.6.3.0 |
七、单列操作场景
| 场景 |
配置说明 |
| GET 场景 |
3亿行基础数据,每行数据100列,value 为20bytes,查询区间3000万行,每次操作读取1列。 |
| SCAN 场景 |
3亿行基础数据,每行数据100列,value 为20bytes,查询区间3000万行,每次范围读取1 ~ 50行,每行获取1列。 |
| PUT 场景 |
3亿行基础数据,每行数据100列,value 为20bytes,插入区间3亿行,每次操作写入1列。 |
八、YCSB 标准 Workload 场景
| 场景 |
读写比例 |
配置说明 |
| Workload A |
50% GET + 50% PUT |
3亿行基础数据,每行数据100列,value 为20bytes,数据区间3亿行,GET 和 PUT 固定访问 f0 ~ f19共20列。 |
| Workload C |
100% GET |
3亿行基础数据,每行数据100列,value 为20bytes,数据区间3亿行,GET 操作固定访问 f0 ~ f19 共20列。 |
| Workload E |
95% SCAN + 5% PUT |
3亿行基础数据,每行数据100列,value 为20bytes,数据区间3亿行,Scan 和 PUT 固定访问 f0 ~ f19 共20列,Scan 范围1 ~ 100行。 |
九、参数配置
测试中对 HBase Client 进行了以下参数优化,以充分发挥系统性能:
<property> <name>hbase.client.ipc.pool.size</name> <value>16</value> <!– RPC 连接池大小 –> </property> <property> <name>hbase.client.ipc.pool.type</name> <value>RoundRobinPool</value> </property> <property> <name>hbase.client.max.total.tasks</name> <value>16</value> <!– 客户端最大并发任务数 –> </property> <property> <name>hbase.client.max.perserver.tasks</name> <value>16</value> <!–每个 RegionServer 的最大并发任务数–> </property>
十一、GET 场景(单列点查)
场景配置: 3亿行基础数据,每行数据100列,value 为20bytes,查询区间3000万行,每次操作读取1列。
| 线程数 |
QPS |
平均延迟(μs) |
50% 延迟(μs) |
95% 延迟(μs) |
99% 延迟(μs) |
CPU |
| 128 |
34,306 |
3,725 |
1,525 |
10,055 |
12,815 |
34% |
| 1024 |
34,555 |
29,565 |
3,069 |
98,175 |
125,119 |
38% |
十二、SCAN 场景(范围查询)
场景配置: 3亿行基础数据,每行数据100列,value 为20bytes,查询区间3000万行,每次范围读取1 ~ 50行,每行获取1列。
| 线程数 |
QPS |
平均延迟(μs) |
50% 延迟(μs) |
95% 延迟(μs) |
99% 延迟(μs) |
CPU |
| 128 |
7,725 |
16,548 |
15,919 |
29,967 |
37,343 |
93% |
| 1024 |
8,281 |
123,418 |
112,383 |
186,623 |
216,447 |
97% |
十三、PUT 场景(单列写入)
场景配置: 3亿行基础数据,每行数据100列,value 为20bytes,插入区间3亿行,每次操作写入1列。
| 线程数 |
QPS |
平均延迟(μs) |
50% 延迟(μs) |
95% 延迟(μs) |
99% 延迟(μs) |
CPU |
| 128 |
69,372 |
1,841 |
1,771 |
2,521 |
3,523 |
56% |
| 1024 |
100,668 |
10,146 |
5,787 |
26,319 |
31,263 |
97% |
十四、Workload A(50% GET + 50% PUT)
场景配置: 3亿行基础数据,每行数据100列,value 为20bytes,数据区间3亿行,GET 和 PUT 固定访问 f0 ~ f19 共20列。
十五、128线程
| 操作 |
QPS |
平均延迟(μs) |
50% 延迟(μs) |
95% 延迟(μs) |
99% 延迟(μs) |
CPU |
| READ |
47,006 |
2,419 |
1,764 |
4,851 |
17,183 |
68% |
| UPDATE |
|
|
|
|
|
|
十六、1024线程
| 操作 |
QPS |
平均延迟(μs) |
50% 延迟(μs) |
95% 延迟(μs) |
99% 延迟(μs) |
CPU |
| READ |
49,453 |
15,761 |
7,231 |
58,015 |
120,447 |
76% |
| UPDATE |
|
|
|
|
|
|
十七、Workload C(100% GET)
场景配置: 3亿行基础数据,每行数据100列,value 为20bytes,数据区间3亿行,GET 操作固定访问 f0 ~ f19 共20列。
| 线程数 |
QPS |
平均延迟(μs) |
50% 延迟(μs) |
95% 延迟(μs) |
99% 延迟(μs) |
CPU |
| 128 |
67,755 |
1,885 |
1,447 |
4,475 |
5,987 |
63% |
| 1024 |
66,975 |
15,250 |
3,855 |
47,679 |
62,943 |
67% |
十八、Workload E(95% SCAN + 5% PUT)
场景配置: 3亿行基础数据,每行数据100列,value 为20bytes,数据区间3亿行,Scan 和 PUT 固定访问 f0 ~ f19 共20列,Scan 范围1 ~ 100行
十九、128线程
| 操作 |
QPS |
平均延迟(μs) |
50% 延迟(μs) |
95% 延迟(μs) |
99% 延迟(μs) |
CPU |
| SCAN |
13,317 |
9,918 |
9,439 |
16,975 |
21,871 |
81% |
| INSERT |
|
|
|
|
|
|
20、1024线程
| 操作 |
QPS |
平均延迟(μs) |
50% 延迟(μs) |
95% 延迟(μs) |
99% 延迟(μs) |
CPU |
| SCAN |
13,727 |
77,140 |
68,799 |
121,855 |
141,823 |
84% |
| INSERT |
|
|
|
|
|
|