资讯专栏INFORMATION COLUMN

OceanBase 备库搭建及性能压测操作手册

IT那活儿 / 2686人阅读
OceanBase 备库搭建及性能压测操作手册



备库搭建



1. 备库主机初始化

每个备库的observer需要用t-oceanbase-antman做初始化,详见安装文档。

2. OCP添加备库主机

添加主机(这里要注意NTP时间)

3. 主集群发起合并

4. 创建备库集群

在OCP创建集群界面选择备集群

选择需要同步的主集群名称,以及Observer,集群选择方式手动分配

提醒:机器选择方式此处截图有误!

确认提交信息

观察任务完成进度

也可以从系统管理-任务界面查看进度

备集群创建成功,查看集群性能



性能压测



1. 准备压测工具

本次使用benchmarkSQL测试数据库在管理类系统下的性能。

下载地址:

https://sourceforge.net/projects/benchmarksql/

下载后放在tmp目录下,并进行解压

unzip benchmarksql-5.0.zip

2. 建立测试账号

这里测试的是Oracle租户

create user test identified by oracle;
grant dba to test;

3. 参数调整

OBServer内核
• root@sys
mysql -uroot@sys#test_cluster -P2883 -h192.168.9.146 -p -c -A Doceanbase

alter system set cpu_quota_concurrency=4;
alter system set enable_pg=true;
alter system set enable_early_lock_release=false tenant=all;
alter system set _max_trx_size=600M;

• 测试租户(Oracle)

obclient -h192.168.9.148 -usys@tenant_oracle#test_cluster -p

set global ob_query_timeout=3600000000;
set global ob_trx_timeout=3600000000;
set global max_allowed_packet=67108864;
set global ob_sql_work_area_percentage=100;
set global parallel_max_servers=300;
set global parallel_servers_target=300;
set global ob_create_table_strict_mode=off;

• proxy参数

obclient -h192.168.9.148 -P2883 -uroot@proxysys -p

alter proxyconfig set slow_proxy_process_time_threshold=5s;
alter proxyconfig set proxy_mem_limited=8G;
alter proxyconfig set enable_metadb_used=false;
alter proxyconfig set enable_strict_kernel_release=false;
alter proxyconfig set work_thread_num=64;
alter proxyconfig set automatic_match_work_thread=false;
alter proxyconfig set enable_compression_protocol=false;
alter proxyconfig set syslog_level=info;
alter proxyconfig set enable_async_log=true;

4. 准备OB配置文件

cd  /tmp/benchmarksql-5.0/run
vi props.ob
db=oracle
driver=com.alipay.oceanbase.obproxy.mysql.jdbc.Driver
// conn=jdbc:oceanbase://xxx.xxx.xxx.xxx:2883/icbc?useUnicode=true&characterEncoding=utf-8
conn=jdbc:oceanbase://xxx.xxx.xxx.xxx:2883/test?useUnicode=true&characterEncoding=utf-8
user=test@tenant_oracle#test_cluster
password=xxxxxx

warehouses=10
loadWorkers=20
//fileLocation=/data/temp/

terminals=10
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=0
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=1
//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

说明:

  • 仓库数(warehouses )决定了数据量。正式的压测仓库数一般在10000以上。

  • Loadworkers 数决定了数据加载的性能。如果OceanBase租户资源很小(尤其是内存资源),那加载速度也不要太快;否则容易把租户内存打爆。

  • 并发数(terminals )是后期做TPC-C测试的客户端并发数。这个每次测试都可以调整,以方便不同压力下的性能。

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

注意:

  • 建表语句中的分区数目可以根据实际情况调整,跟集群节点数有关。

  • 如果集群是3台(1-1-1),建议是6个或者6的倍数;如果集群是6台(2-2-2),建议是12个或者12的倍数;如果集群是(3-3-3),建议是36或者36的倍数。这样是方便后期弹性伸缩测试的时候尽可能保证每个节点的分区均衡。

5.  建表

1)修改分区数

cd /tmp/benchmarksql-5.0/run/sql.common
cp tableCreates.sql tableCreates.sql.bak
vi tableCreates.sql
把里面的partitions 180改为partitions 6

2) 建表

Cd /tmp/benchmarksql-5.0/run
./runSQL.sh props.ob ./sql.common/tableCreates.sql

3)加载数据

./runLoader.sh props.ob

6. 登录OCP观察性能

数据库性能

主机性能

建索引

./runSQL.sh props.ob ./sql.common/indexCreates.sql

验证数据

select select /*+ parallel(8) */ count(1) from  ||table_name||; from user_tables;
select /*+ parallel(8) */ count(1) from BMSQL_CONFIG ;
select /*+ parallel(8) */ count(1) from BMSQL_WAREHOUSE ;
select /*+ parallel(8) */ count(1) from BMSQL_DISTRICT ;
select /*+ parallel(8) */ count(1) from BMSQL_CUSTOMER ;
select /*+ parallel(8) */ count(1) from BMSQL_HISTORY ;
select /*+ parallel(8) */ count(1) from BMSQL_NEW_ORDER ;
select /*+ parallel(8) */ count(1) from BMSQL_OORDER ;
select /*+ parallel(8) */ count(1) from BMSQL_ORDER_LINE;
select /*+ parallel(8) */ count(1) from BMSQL_ITEM ;
select /*+ parallel(8) */ count(1) from BMSQL_STOCK ;

7. 运行测试程序

./runBenchmark.sh props.ob

8. 观察性能

重点关注QPS/TPS、以及相应的RT、增量内存的增加和总量占比等。此外还能看出测试过程中还是有不少物理读IO。

9. 清理数据

登录test用户执行tableDrops.sql

cd /tmp/benchmarksql-5.0/run/sql.common
obclient -h192.168.9.148 -utest@tenant_oracle#test_cluster -p -P2883
source tableDrops.sql


END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129820.html

相关文章

  • OceanBase迁移服务:向分布式架构升级的直接路径

    摘要:年月日,迁移服务解决方案在城市峰会中正式发布。迁移服务向分布式架构升级的直接路径基于上述问题和挑战,同时经过蚂蚁十年数据库架构升级的先进经验,蚂蚁金服为客户打造了这款一站式数据迁移解决方案迁移服务,简称。 2019年1月4日,OceanBase迁移服务解决方案在ATEC城市峰会中正式发布。蚂蚁金服资深技术专家师文汇和技术专家韩谷悦共同分享了OceanBase迁移服务的重要特性和业务实践...

    KaltZK 评论0 收藏0
  • OceanBase迁移服务:向分布式架构升级的直接路径

    摘要:年月日,迁移服务解决方案在城市峰会中正式发布。迁移服务向分布式架构升级的直接路径基于上述问题和挑战,同时经过蚂蚁十年数据库架构升级的先进经验,蚂蚁金服为客户打造了这款一站式数据迁移解决方案迁移服务,简称。 2019年1月4日,OceanBase迁移服务解决方案在ATEC城市峰会中正式发布。蚂蚁金服资深技术专家师文汇和技术专家韩谷悦共同分享了OceanBase迁移服务的重要特性和业务实践...

    gnehc 评论0 收藏0
  • 厉害了,蚂蚁金服!创造了中国自己的数据库OceanBase(下)

    摘要:技术成就划时代的分布式数据库通过核心业务的不断上线,蚂蚁金服帮助渡过了自研基础软件产品最艰难的应用关。年天猫双十一,支付宝创造了万笔每秒支付峰值的业界新纪录,这对于数据库来说,意味着每秒需要同时运行万条。 技术成就:划时代的分布式数据库 通过核心业务的不断上线,蚂蚁金服帮助OceanBase渡过了自研基础软件产品最艰难的应用关。OceanBase不只是被研发出来的,更是被用出来的,是在...

    shiina 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<