帮你快速理解、总结文档立即下载
文档中心>TDSQL Boundless>性能白皮书>YCSB 测试(HBase 兼容模式)

YCSB 测试(HBase 兼容模式)

最近更新时间:2026-06-30 16:45:30
我的收藏

测试概述

本文档介绍 TDSQL Boundless HBase 兼容接口的性能测试结果。测试采用业界标准的 YCSB(Yahoo! Cloud Serving Benchmark)工具,覆盖多种典型业务场景,全面评估 TDSQL Boundless HBase 兼容接口在不同负载下的吞吐量和延迟表现。

测试环境

硬件配置

配置项
规格
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

1024线程

操作
QPS
平均延迟(μs)
50% 延迟(μs)
95% 延迟(μs)
99% 延迟(μs)
CPU
SCAN
13,727
77,140
68,799
121,855
141,823
84%
INSERT