OceanBase打榜很牛,这个大家都知道,TPCC/TPCH都拿过世界第一了。
平时我们在进行数据库测试的时候,也会经常用到BenchmarkSQL,今天我们就来尝试一下如何使用BenchmarkSQL在OceanBase上进行测试。
本文部分参数配置参考了Oceanbase官方指导:https://zhuanlan.zhihu.com/p/112894850 由于开源版本不支持Oracle,所以本文采用MySQL模式测试,过程可能略有不同。
1.准备OceanBase测试环境
与测试任何数据库一样,首先我们需要准备好OceanBase测试集群,这里假设您已经正常安装并启动了一套集群。下面我们主要介绍如何为BenchmarkSQL准备测试环境。
1.1 创建新租户
创建租户使用以下三步,使用obclient登录系统租户后,创建资源单元、资源池和新租户test_tenant:
MySQL [oceanbase]> CREATE RESOURCE UNIT unit1 MAX_CPU 1, MAX_MEMORY '1G', MAX_IOPS 128,MAX_DISK_SIZE '10G', MAX_SESSION_NUM 64, MIN_CPU=1, MIN_MEMORY='1G', MIN_IOPS=128;
Query OK, 0 rows affected (0.01 sec)
MySQL [oceanbase]> CREATE RESOURCE POOL pool1 UNIT='unit1',UNIT_NUM=1,ZONE_LIST=('zone1','zone2','zone3');
Query OK, 0 rows affected (0.03 sec)
MySQL [oceanbase]> CREATE TENANT IF NOT EXISTS test_tenant CHARSET='utf8mb4',ZONE_LIST=('zone1','zone2','zone3'), PRIMARY_ZONE='zone1;zone2,zone3', RESOURCE_POOL_LIST=('pool1') SET ob_tcp_invited_nodes='%' ;
Query OK, 0 rows affected (1.12 sec)
1.2 创建测试用户
由于我们上面创建了新的租户,所以这里登录时一定要采用root用户登录到新租户,然后进行权限处理,否则后面会出现 Access Denied 的错误哦。
[admin@obproxy ~]$ obclient -h 10.211.55.54 -uroot@test_tenant -P2883 -c -A oceanbase -p
create user 'tpcc' identified by 'tpcc';
grant all privileges on tpcc.* to tpcc with grant option ;
grant create, drop, insert, delete, update, select on *.* to tpcc;
1.3 修改observer参数
(1) sys租户参数修改
BenchmarkSQL会加载大量数据,短时间内对OceanBase内存消耗速度会很快,因此需要针对内存冻结合并和限流参数做一些调优。在sys租户执行:
ALTER SYSTEM SET enable_merge_by_turn=FALSE;
ALTER SYSTEM set minor_freeze_times=100;
ALTER SYSTEM set freeze_trigger_percentage=70;
ALTER SYSTEM set writing_throttling_trigger_percentage=70 tenant='test_tenant';
ALTER SYSTEM set writing_throttling_maximum_duration='10m' tenant='test_tenant';
show parameters where name in ('minor_freeze_times','freeze_trigger_percentage');

注意:业务租户限流参数的修改是在sys租户里,需要指定相应的租户名。然后查看确认需要到业务租户里。
在业务租户执行:
SHOW parameters WHERE name IN ('writing_throttling_trigger_percentage','writing_throttling_maximum_duration');

(2) 业务租户参数修改
OceanBase跟Oracle/MySQL相比,会有个默认SQL超时和事务超时机制。这个可能会导致后面查看修改数据的SQL报错。所以先修改一下这些参数。
set global recyclebin=off;
set global ob_query_timeout=1000000000
OceanBase TPCC测试实战:BenchmarkSQL在分布式数据库中的性能优化

本文详细介绍了如何在OceanBase上使用BenchmarkSQL进行TPCC性能测试,包括数据库准备、用户权限设置、参数调优和性能分析。重点讲解了如何配置sys和业务租户参数,以及如何适配MySQL并执行TPCC测试,为数据库优化提供实用指南。
最低0.47元/天 解锁文章
2294

被折叠的 条评论
为什么被折叠?



