使用BenchmarkSQL对OceanBase进行测试的步骤

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

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿福Chris

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值