Skip to content

Latest commit

 

History

History
234 lines (200 loc) · 25.7 KB

300.test-command-group.md

File metadata and controls

234 lines (200 loc) · 25.7 KB

测试命令组

OBD 有多级命令,您可以在每个层级中使用 -h/--help 选项查看子命令的帮助信息。同样的,当各层级的子命令执行报错时,您亦可使用 -v/--verbose 查看命令的详细执行过程。本文将介绍 OBD 中测试命令的使用。

obd test mysqltest

使用该命令可对 OcecanBase 数据库或 ODP 组件的指定节点执行 mysqltest。

执行 mysqltest 需要 OBClient,请先确认您已安装 OBClient。

说明

  • 本节主要对该命令进行介绍,具体使用请参考 mysqltest 使用说明

  • 使用该命令执行测试的集群需是由 OBD 部署的集群,否则 OBD 无法获取集群的信息。

obd test mysqltest <deploy name> [--test-set <test-set>] [flags]
# example
obd test mysqltest test --all --auto-retry

参数 deploy name 为部署集群名,可以理解为配置文件的别名。

选项说明见下表:

选项名 是否必选 数据类型 默认值 说明
--component string 默认为空 待测试的组件名。候选项为 obproxyobproxy-ceoceanbaseoceanbase-ce。为空时,按 obproxyobproxy-ceoceanbaseoceanbase-ce 的顺序进行检查。检查到组件存在则不再遍历,使用命中的组件进行后续测试。
--test-server string 默认为指定的组件下服务器中的第一个节点 待测试的机器,后跟 yaml 文件中 servers 对应的 name 值,若 servers 后未配置 name 值,则使用 ip 值,必须是指定的组件下的某个节点名。
--user string admin 执行测试的用户名,一般情况下不需要修改。
--password string admin 执行测试的用户密码。
--database string test 执行测试的数据库。
--mysqltest-bin string /u01/obclient/bin/mysqltest mysqltest 二进制文件路径。
--obclient-bin string obclient OBClient 二进制文件路径。
--test-dir string ./mysql_test/t mysqltest 所需的 test-file 存放的目录。test 文件找不到时会尝试在 OBD 内置中查找。
--test-file-suffix string .test mysqltest 所需的 test-file 的后缀。
--result-dir string ./mysql_test/r mysqltest 所需的 result-file 存放的目录。result 文件找不到时会尝试在 OBD 内置中查找。
--result-file-suffix string .result mysqltest 所需的 result-file 的后缀。
--record bool false 仅记录 mysqltest 的执行结果作为 record-file
--record-dir string ./record 记录 mysqltest 的执行结果所存放的目录。
--record-file-suffix string .record 记录 mysqltest 的执行结果的后缀。
--tmp-dir string ./tmp mysqltest 的临时目录,存放执行测试过程中产生的一些临时文件。
--var-dir string ./var 将在该目录下创建 log 目录,并将 log 目录作为 --log-dir 参数传入 mysqltest。
--test-set string test case 数组。多个 case 使用英文逗号(,)间隔。
--exclude string 需要除外的 test case 数组。多个 case 中使用英文逗号(,)间隔。
--test-pattern string test 文件名匹配的正则表达式。所有匹配表达式的 case 将覆盖 test-set 选项。
--suite string suite 数组。一个 suite 下包含多个 test,可以使用英文逗号(,)间隔。
--suite-dir string ./mysql_test/test_suite 存放 suite 目录的目录。suite 目录找不到时会尝试在 OBD 内置中查找。
--all bool false 执行 --suite-dir 下全部的 case。--suite-dir 参数为存放 suite 目录的目录。
--need-init bool false 执行 init sql 文件。一个新的集群要执行 mysqltest 前可能需要执行一些初始化文件,比如创建 case 所需要的账号和租户等。默认不开启。
--init-sql-dir string ./ init sql 文件所在目录。sql 文件找不到时会尝试在 OBD 内置中查找。
--init-sql-files string 需要 init 时执行的 init sql 文件数组。英文逗号(,)间隔。不填时,如果需要 init,OBD 会根据集群配置执行内置的 init。
--auto-retry bool false 失败时自动重部署集群进行重试。
--psmall bool false 执行 psmall 模式的 case。
--slices int 默认为空 需要执行的 case 将被分成的组数。
--slice-idx int 默认为空 指定当前分组 id。
--slb-host string 默认为空 指定软负载均衡中心。
--exec-id string 默认为空 指定执行 id。
--case-filter string ./mysql_test/filter.py filter.py 文件,维护了需要过滤的 case。
--reboot-timeout int 0 重启的超时时间。
--reboot-retries int 5 重启失败重试次数。
--collect-all bool false 是否收集组件日志。
--log-dir string 默认为 $--var-dir/log mysqltest 的日志存放路径。
--log-pattern string *.log 收集日志文件名匹配的正则表达式,命中的文件将被收集。
--case-timeout int 3600 mysqltest 单个测试的超时时间。
--disable-reboot bool false 在执行测试的过程中不再重启。
--collect-components string 默认为空 用来指定要进行日志收集的组件,多个组件以英文逗号(,)间隔。
--init-only bool false 为 true 时表示仅执行 init SQL。

obd test sysbench

使用该命令可对 OcecanBase 数据库或 ODP 组件的指定节点执行 Sysbench。

执行 Sysbench 需要 OBClient 和 ob-sysbench,请确认您已安装 OBClient 和 ob-sysbench。

说明

  • 本节主要对该命令进行介绍,具体使用请参考 OceanBase 数据库 Sysbench 测试

  • 使用该命令执行测试的集群需是由 OBD 部署的集群,否则 OBD 无法获取集群的信息。

obd test sysbench <deploy name> [flags]
# example
sudo yum install ob-sysbench
obd test sysbench test --tenant=sysbench --script-name=oltp_read_only.lua --table-size=1000000 --threads=32 --rand-type=uniform

参数 deploy name 为部署集群名,可以理解为配置文件的别名。

选项说明见下表:

选项名 是否必选 数据类型 默认值 说明
--component string 默认为空 待测试的组件名。候选项为 obproxyobproxy-ceoceanbaseoceanbase-ce。为空时,按 obproxyobproxy-ceoceanbaseoceanbase-ce 的顺序进行检查。检查到组件存在则不再遍历,使用命中的组件进行后续测试。
--test-server string 默认为指定的组件下服务器中的第一个节点 待测试的机器,后跟 yaml 文件中 servers 对应的 name 值,若 servers 后未配置 name 值,则使用 ip 值,必须是指定的组件下的某个节点名。
--user string root 执行测试的用户名。
--password string 默认为空 执行测试的用户密码。
-t/--tenant string test 执行测试的租户名,请确保该租户已经创建。
--database string test 执行测试的数据库。
--obclient-bin string obclient OBClient 二进制文件路径。
--sysbench-bin string sysbench sysbench 二进制文件路径。
--script-name string point_select.lua 要执行的 sysbench 脚本名。
--sysbench-script-dir string /usr/sysbench/share/sysbench sysbench 脚本存放目录。
--tables int 30 初始化表的数量。
--table-size int 20000 每张表初始化的数据数量。
--threads int 16 启动的线程数量。
--time int 60 测试运行时间,单位:秒。设置为 0 时表示不限制时间。
--interval int 10 运行期间日志打印时间间隔,单位:秒。为 0 时表示不打印日志
--mysql-ignore-errors string 1062 报错时忽略指定的错误码,多个错误码以逗号间隔,取值为“all”时表示忽略全部。
--events int 0 最大请求数量,定义数量后可以不需要 --time 选项。
--rand-type string 访问数据时使用的随机生成函数。取值可以为 special、uniform、gaussian 或 pareto。默认值为 special, 早期值为 uniform
---skip-trx string 在只读测试中打开或关闭事务。
--percentile int 延迟统计信息中要计算的百分比。取值范围为 [1,100],为 0 时表示禁用百分比计算。
-S/--skip-cluster-status-check bool false 开启时跳过集群状体检查,允许测试的时候有节点处于离线状态。
-O/--optimization int 1 自动调优等级。为 0 时关闭。为 1 时会修改不需要重启生效的调优参数。为 2 时会修改所有的调优参数,如果需要,会重启集群使调优生效。

obd test tpch

使用该命令可对 OcecanBase 数据库或 ODP 组件的指定节点执行 TPC-H。

执行 TPC-H 需要 OBClient 和 obtpch,请确认您已安装 OBClient 和 obtpch。

TPC-H 需要指定一台 OceanBase 目标服务器作为执行对象。在执行 TPC-H 测试前,OBD 会将测试需要的数据文件传输到指定机器的指定目录下,这些文件可能会比较大,请确保机器上足够的磁盘空间。当然您也可以提前在目标机器上准备好数据文件,再通过 --dt/--disable-transfer 选项关闭传输。

说明

  • 本节主要对该命令进行介绍,具体使用请参考 OceanBase 数据库 TPC-H 测试

  • 使用该命令执行测试的集群需是由 OBD 部署的集群,否则 OBD 无法获取集群的信息。

obd test tpch <deploy name> [flags]
# example
sudo yum install obtpch
obd test tpch test --tenant=tpch -s 100 --remote-tbl-dir=/tmp/tpch100

参数 deploy name 为部署集群名,可以理解为配置文件的别名。

选项说明见下表:

选项名 是否必选 数据类型 默认值 说明
--component string 默认为空 待测试的组件名。候选项为 obproxyobproxy-ceoceanbaseoceanbase-ce。为空时,按 obproxyobproxy-ceoceanbaseoceanbase-ce 的顺序进行检查。检查到组件存在则不再遍历,使用命中的组件进行后续测试。
--test-server string 默认为指定的组件下服务器中的第一个节点 待测试的机器,后跟 yaml 文件中 servers 对应的 name 值,若 servers 后未配置 name 值,则使用 ip 值,必须是指定的组件下的某个节点名。
--user string root 执行测试的用户名。
--password string 默认为空 执行测试的用户密码。
-t/--tenant string test 执行测试的租户名,请确保该租户已经创建。
--database string test 执行测试的数据库,如没有创建,测试程序会自动创建。
--obclient-bin string obclient OBClient 二进制文件路径。
--dbgen-bin string /usr/tpc-h-tools/tpc-h-tools/bin/dbgen dbgen 二进制文件路径。
--dss-config string /usr/tpc-h-tools/tpc-h-tools/ dists.dss 所在目录。
-s/--scale-factor int 1 自动生成测试数据的规模,单位:G。
--tmp-dir string ./tmp 执行 tpch 时的临时目录。自动生成的测试数据,自动调优的 sql 文件,执行测试 sql 的日志文件等都会存在这里。
--ddl-path string 默认为空 ddl 文件路径或目录。为空时,OBD 会使用自带的 ddl 文件。
--tbl-path string 默认为空 tbl 文件路径或目录。为空时,使用 dbgen 生成测试数据。
--sql-path string 默认为空 sql 文件路径或目录。为空时,OBD 会使用自带的 sql 文件。
--remote-tbl-dir string 默认为空 目标 OBServer 节点上存放 tbl 的目录,绝对路径,请保证 OBServer 节点的启动用户对该目录有读写权限。在不开启 --test-only 的情况下该选项为必填项。
--test-only bool false 不执行初始化,仅执行测试 SQL。
--dt/--disable-transfer bool false 禁用传输。开启后将不会把本地 tbl 传输到远程 remote-tbl-dir 下,而是直接使用目标机器 remote-tbl-dir 下的 tbl 文件。
-S/--skip-cluster-status-check bool false 开启时跳过集群状体检查,允许测试的时候有节点处于离线状态。
-O/--optimization int 1 自动调优等级。为 0 时关闭。为 1 时会修改不需要重启生效的调优参数。为 2 时会修改所有的调优参数,如果需要,会重启集群使调优生效

obd test tpcc

使用该命令可对 OceanBase 数据库或 ODP 组件的指定节点执行 TPC-C。

执行 TPC-C 需要 OBClient 和 obtpcc,请确认您已安装 OBClient 和 obtpcc。

说明

  • 本节主要对该命令进行介绍,具体使用请参考 OceanBase 数据库 TPC-C 测试

  • 使用该命令执行测试的集群需是由 OBD 部署的集群,否则 OBD 无法获取集群的信息。

obd test tpcc <deploy name> [flags]
# example
sudo yum install obtpcc java
obd test tpcc test --tenant=tpcc --warehouses 10 --run-mins 1

参数 deploy name 为部署集群名,可以理解为配置文件的别名。

选项说明见下表:

选项名 是否必选 数据类型 默认值 说明
--component string 默认为空 待测试的组件名。候选项为 obproxyobproxy-ceoceanbaseoceanbase-ce。为空时,按 obproxyobproxy-ceoceanbaseoceanbase-ce 的顺序进行检查。检查到组件存在则不再遍历,使用命中的组件进行后续测试。
--test-server string 默认为指定的组件下服务器中的第一个节点 待测试的机器,后跟 yaml 文件中 servers 对应的 name 值,若 servers 后未配置 name 值,则使用 ip 值,必须是指定的组件下的某个节点名。
--user string root 执行测试的用户名。
--password string 默认为空 执行测试的用户密码。
-t/--tenant string test 执行测试的租户名,请确保该租户已经创建。
--database string test 执行测试的数据库,如没有创建,测试程序会自动创建。
--obclient-bin string obclient OBClient 二进制文件路径。
--java-bin string java Java 二进制文件路径。
--tmp-dir string ./tmp 执行 tpcc 时的临时目录。自动生成的配置文件、自动调优的 sql 文件、执行测试输出文件等都会存在这里。
--bmsql-dir string 默认为空 指定 BenchmarkSQL 的目录。只有在自行编译安装 BenchmarkSQL 时需要指定,obtpcc 不需要指定此项。
--bmsql-jar string 默认为空 指定 BenchmarkSQL 主 jar 路径。为空的时候,如果未指定 BenchmarkSQL 的目录,则使用 obtpcc 的默认安装路径,如果指定了 BenchmarkSQL 地址,则使用 <bmsql-dir>/dist 下的 jar。
--bmsql-libs string 默认为空 如果指定了 BenchmarkSQL 地址,则使用 <bmsql-dir>/lib 以及 <bmsql-dir>/lib/oceanbase 下的 jar,obtpcc 不需要指定此项。
--bmsql-sql-dir string 默认为空 TPC-C 的 sql 文件的路径。为空时,OBD 会使用自行生成的 sql 文件。
--warehouses int 10 TPC-C 测试集的货仓数量。如果没有传入,则为 OceanBase 集群 CPU 数 * 20 。
--load-workers int 默认为空 构造测试数据集时的并发数量。如果没有传入则在 单机 CPU 数租户可用内存(G)/2 中取小值。
--terminals int 默认为空 TPC-C 测试时的虚拟终端数量。如果没有传入,则在 OceanBase 集群 CPU 数 * 15货仓数量 * 10 中取小值。
--run-mins int 10 TPC-C 测试执行的时间,单位:min。
--test-only bool false 不再构造数据,仅执行测试。
-S/--skip-cluster-status-check bool false 开启时跳过集群状体检查,允许测试的时候有节点处于离线状态。
-O/--optimization int 1 自动调优等级。为 0 时关闭。为 1 时会修改不需要重启生效的调优参数。为 2 时会修改所有的调优参数,如果需要,会重启集群使调优生效。