文档中心>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