oracle client home 多个版本_OceanBase 2.2 版本体验:用 BenchmarkSQL 跑 TPC-C

本文介绍了如何使用BenchmarkSQL在OceanBase 2.2版本上进行TPC-C测试。详细讲述了OceanBase测试租户的准备,包括参数修改、OBProxy配置调整,以及BenchmarkSQL的准备和配置。通过运行TPC-C测试,展示了测试过程和关键指标,提供了测试结果和性能分析。
摘要由CSDN通过智能技术生成

6cfde925eb042cde664106196c016059.png
OB君:好消息!「 OceanBase 2.2 版本 」正式上线官网啦!(点击阅读原文即可直接下载)OceanBase 2.2版本是成功支撑2019年天猫双11大促的稳定版本,同时也是用于TPC-C测试且荣登TPC-C性能榜首的版本。我们将在接下来的时间里为大家持续推出 “ OceanBase 2.2 手把手系列” ,将手把手带大家一起体验OceanBase 2.2的强大功能。欢迎持续关注!

引言

OceanBase 2.2版本近期已通过官网提供下载(https://oceanbase.alipay.com/download/resource),2.2支持Oracle租户。OceanBase在2019年10月2日荣膺国际事务委员会(TPC)审计发布的TPC-C基准测试榜首,用的就是Oracle租户。TPC-C测试使用了207多台阿里云高配ECS服务器,是因为TPC-C标准对应用、数据库等规范非常细致严格。一般来说普通企业或个人很难有那样的条件去测试。

BenchmarkSQL是开源的TPC-C测试程序,它弱化了TPC-C的关键标准(数据分布和应用执行行为方面),使得用几台服务器就可以跑TPC-C成为可能。当然这个结果不能跟官方TPC-C的结果相比较。不过,使用BenchmarkSQL来比较不同的数据库的事务处理能力还是有一定参考意义的,尤其是相比Sysbench而言。

OceanBase测试租户准备

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='obbmsql';
ALTER SYSTEM set writing_throttling_maximum_duration='10m' tenant='obbmsql';
show parameters where name  in ('minor_freeze_times','freeze_trigger_percentage');

944bb43eaefce005ca78ab12c2c2b95c.png

注意:业务租户限流参数的修改是在sys租户里,需要指定相应的租户名。然后查看确认需要到业务租户里。
在业务租户执行:

SHOW parameters WHERE name IN ('writing_throttling_trigger_percentage','writing_throttling_maximum_duration');

ef25b9ba64d7073a121cffb1f159c4ad.png

2. 业务租户参数修改

OceanBase跟Oracle/MySQL相比,会有个默认SQL超时和事务超时机制。这个可能会导致后面查看修改数据的SQL报错。所以先修改一下这些参数。

set global recyclebin=off;
set global ob_query_timeout=1000000000;
set global ob_trx_idle_timeout=1200000000;
set global ob_trx_timeout=1000000000;

此外,需要为bmsql准备一个单独的schema(即用户)。

drop user tpcc cascade;

create user tpcc identified by 123456;
grant all privileges on tpcc.* to tpcc with grant option ;
grant create, drop on *.* to tpcc;

3. OBProxy配置修改

OBProxy是OceanBase的访问代理,其内部一些参数也可能影响性能。如下面的压缩参数对CPU有一定消耗,测试时可以关闭。

$ obclient -h127.1 -uroot@sys#obdemo -P2883 -p123456 -c -A oceanbase

alter proxyconfig set enable_compression_protocol=False;
show proxyconfig like 'enable_compression_protocol';

该参数修改后,需要重启obproxy进程

[admin@xxx /home/admin]
$kill -9 `pidof obproxy`

[admin@h07d17167.sqa.eu95 /home/admin]
$cd /opt/taobao/install/obproxy

[admin@xxx /opt/taobao/install/obproxy]
$bin/obproxy
bin/obproxy

BenchmarkSQL准备

BenchmarkSQL 官方下载地址是: https://sourceforge.net/projects/benchmarksql/ ,下载后请参考 HOW-TO-RUN.txt 中说明先编译安装BenchmarkSQL。然后按下面建议修改部分脚本增加对OceanBase支持。也可以直接下载我编译修改好的BenchmarkSQL,地址是:https://github.com/obpilot/benchmarksql-5.0

1. 准备OceanBase驱动文件

BenchmarkSQL是通过jdbc连接各个数据库的。此次OceanBase的测试租户是Oracle类型,所以需要借用 lib/oracle 目录,然后把相关jar包一并放入其中。其中 oceanbase-client-*.jar 是OceanBase提供的,其他jar包可以从互联网获取。

[admin@xxx /home/admin/benchmarksql-5.0]$ll lib/oracle/
total 3728
-rwxr-xr-x 1 admin admin   52988 Jul 12  2019 commons-cli-1.3.1.jar
-rwxr-xr-x 1 admin admin  245274 Jul 12  2019 commons-lang-2.3.jar
-rwxr-xr-x 1 admin admin 2256213 Jul 12  2019 guava-18.0.jar
-rwxr-xr-x 1 admin admin   54495 Jul 12  2019 json-20160810.jar
-rwxr-xr-x 1 admin admin 1121698 Dec  3 15:04 oceanbase-client-1.0.8.jar
-rwxr-xr-x 1 admin admin     174 Jul 12  2019 README.txt
-rwxr-xr-x 1 admin admin   76997 Jul 12  2019 toolkit-common-logging-1.10.jar

2. 准备OB配置文件

$cat props.ob
db=oracle
driver=com.alipay.oceanbase.obproxy.mysql.jdbc.Driver
conn=jdbc:oceanbase://127.0.0.1:2883/tpcc?useUnicode=true&characterEncoding=utf-8
user=tpcc@obbmsql#obdemo
password=123456

warehouses=10
loadWorkers=10
//fileLocation=/home/t4/tmp
    
terminals=10
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=0
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=10
//Number of total transactions per minute
limitTxnsPerMin=0

//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=true

//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4

// Directory name to create for collecting detailed result data.
// Comment this out to suppress.
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
osCollectorScript=./misc/os_collector_linux.py
osCollectorInterval=1
//osCollectorSSHAddr=user@dbhost
//osCollectorDevices=net_eth0 blk_sda

注意:a. 仓库数(warehouses)决定了数据量。正式的压测仓库数一般在10000以上。b. loadworkers数决定了数据加载的性能。如果OceanBase租户资源很小(尤其是内存资源),那加载速度也不要太快;否则容易把租户内存打爆。c. 并发数(terminals)是后期做TPC-C测试的客户端并发数。这个每次测试都可以调整,以方便观察不同压力下的性能。

d. 压测时间(runMin)是每次测试时间,越长测试结果越好且稳定。因为有时候数据访问有个预热过程,效果会体现在内存命中率上。

3. 创建BenchmarkSQL相关表

1)建表脚本

该SQL脚本不需要直接执行。

create t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值