实验环境
oceanbase 企业版V3 1-1-1
实验步骤
步骤1 创建MySQL 租户 ob_mysql,租户资源规格大小为 1C2G
CREATE RESOURCE UNIT memory_test MAX_CPU 1, MAX_MEMORY '2G', MAX_IOPS 128,MAX_DISK_SIZE '10G', MAX_SESSION_NUM 64, MIN_CPU=1, MIN_MEMORY='2G', MIN_IOPS=128;
![](https://i-blog.csdnimg.cn/direct/8c73b5f459b8409db27e01e6f5da760e.png)
create resource pool memory_test unit = 'memory_test',unit_num = 1;
![](https://i-blog.csdnimg.cn/direct/8980d8866e644c7ca22464208adf9c0b.png)
CREATE TENANT IF NOT EXISTS tenant1
charset='utf8mb4',
comment 'mysql tenant/instance',
primary_zone='RANDOM',
resource_pool_list = ('memory_test') set ob_tcp_invited_nodes = '%';
步骤2 如果之前的练习没有安装 sysbench 工具,现在安装 sysbench 工具
yum install -y epel-release
yum install -y sysbench
步骤3 创建 sbtest 数据库,准备对 ob_mysql 租户进行压力测试, 注意 sysbench 工具目前仅支 持 MySQL 租户
![](https://i-blog.csdnimg.cn/direct/0b9d48ddfe714960aca2548b48b1de33.png)
create database sbtest;
步骤 3 初始化测试表
sysbench /usr/share/sysbench/oltp_read_write.lua --tables=50 --table-size=200000 --mysql-host=192.168.5.161 --mysql-port=2881 --mysql-user=root@tenant1 --threads=100 --report-interval=10 --time=60 --db-driver=mysql --db-ps-mode=disable cleanup
步骤 4 准备测试数据
sysbench /usr/share/sysbench/oltp_read_write.lua --tables=5 --table-size=200000 --mysql-host=127.0.0.1 --mysql-port=2881 --mysql-user=root@tenant1 --mysql-password='' --threads=100 --report-interval=10 --time=60 --db-driver=mysql --db-ps-mode=disable prepare
步骤 5 看到4012,引起测试命令报错,查看内存模块使用情况,按照使用内存容量继续排
步骤 6 查看 gv$sql_audit 中此 SQL 语句的执行情况, 可以看到数据字典中已经存放了这个 SQL 的 trace_id, 记录此 trace_id 准备下个步骤
select svr_ip,query_sql,sql_id,plan_id, trace_id,rpc_count,plan_type,elapsed_time,
get_plan_time from gv$sql_audit where ret_code= '-4012' and query_sql like
'%sbtest%' order by elapsed_time limit 5 \G
步骤 7 在 observer.log 或者前一个日志中查询此 trace_id , 可以关联 sysbench 的执行时间
![](https://i-blog.csdnimg.cn/direct/9e6a375fef7b411ab7ed448cda095df0.png)
查看4012报错的信息后,怀疑是事务超时时间和sql超时时间过短导致,修改后重新sysbench尝试成功
![](https://i-blog.csdnimg.cn/direct/84338fdeb9d34f70bc82a94d75aa4b8e.png)