---
title: "性能测试 | OceanBase 文档中心"
description: 性能测试 本文介绍如何使用 obd 命令对 OceanBase 集群进行性能测试。 说明 使用 obd 命令进行性能测试时，待测试的集群需是被 obd 管理的集群，否则 obd 无法获取集群的信息。obd 部署的集群默认由 obd 管理，非 obd 部署的集群可执行接管操作进行接管。接管的详细操作可参见 使用 obd…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*Qq8pT6yBPTcAAAAAAAAAAAAADiGDAQ/original) 安装部署工具 OBDV 3.1.0 社区版

# 性能测试

更新时间：2026-04-14 17:55:52

[编辑](https://github.com/oceanbase/obd-doc/edit/V3.1.0/zh-CN/400.user-guide/300.command-line-operations/1000.performance-testing.md)  

本文介绍如何使用 obd 命令对 OceanBase 集群进行性能测试。

#### 说明

- 使用 obd 命令进行性能测试时，待测试的集群需是被 obd 管理的集群，否则 obd 无法获取集群的信息。obd 部署的集群默认由 obd 管理，非 obd 部署的集群可执行接管操作进行接管。接管的详细操作可参见 [使用 obd 接管集群](https://www.oceanbase.com/docs/community-obd-cn-1000000002023459)。
 - 您也可选择基于官方测试工具手动逐步进行性能测试，详细操作可参见官网《OceanBase 数据库》文档 [参考指南/性能测试](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001247760) 章节。

## 环境准备

测试前请按照如下要求准备您的测试环境：

- JDK：建议使用 1.8u131 及以上版本。
 - make：可执行 `yum install make` 命令安装。
 - gcc：可执行 `yum install gcc` 命令安装。
 - OBClient：详细信息，请参考 [OBClient 文档](https://github.com/oceanbase/obclient/blob/master/README.md)。
 - OceanBase 数据库：需部署 OceanBase 数据库，并创建执行测试的租户及用户。部署 OceanBase 数据库的操作可参见 [通过图形化界面部署 OceanBase 集群](https://www.oceanbase.com/docs/community-obd-cn-1000000002023445)，创建租户可使用 `obd cluster tenant create` 命令，详细介绍可参见 [集群命令组](https://www.oceanbase.com/docs/community-obd-cn-1000000002023439) 中 **obd cluster tenant create** 部分内容。
 - iops：建议磁盘 iops 在 10000 以上。

#### 注意

- 部署集群时，建议不要使用 `obd cluster autodeploy` 命令，该命令为了保证稳定性，不会最大化资源利用率（例如不会使用所有内存），建议单独对配置文件进行调优，最大化资源利用率。
 - sys 租户是管理集群的内置系统租户，请勿直接使用 sys 租户进行测试。

## TPC-H 测试

### TPC-H 概述

TPC-H（商业智能计算测试）是美国交易处理效能委员会（TPC，Transaction Processing Performance Council）组织制定的用来模拟决策支持类应用的一个测试集。目前，学术界和工业界普遍采用 TPC-H 来评价决策支持技术方面应用的性能。这种商业测试可以全方位评测系统的整体商业计算综合能力，对厂商的要求更高，同时也具有普遍的商业实用意义，目前在银行信贷分析和信用卡分析、电信运营分析、税收分析、烟草行业决策分析中都有广泛的应用。

TPC-H 基准测试由 TPC-D（由 TPC 于 1994 年制定的标准，用于决策支持系统方面的测试基准）发展而来的。TPC-H 用 3NF 实现了一个数据仓库，共包含 8 个基本关系，其主要评价指标是各个查询的响应时间，即从提交查询到结果返回所需时间。TPC-H 基准测试的度量单位是每小时执行的查询数（QphH@size），其中 H 表示每小时系统执行复杂查询的平均次数，size 表示数据库规模的大小，它能够反映出系统在处理查询时的能力。TPC-H 是根据真实的生产运行环境来建模的，这使得它可以评估一些其他测试所不能评估的关键性能参数。总而言之，TPC 组织颁布的TPC-H 标准满足了数据仓库领域的测试需求，并且促使各个厂商以及研究机构将该项技术推向极限。

### 操作步骤

您可参照如下步骤使用 obd 对 OceanBase 集群进行 TPC-H 测试。

1. 安装 obtpch

   ```shell
   sudo yum install -y yum-utils
   sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
   sudo yum install obtpch

   ```
 2. 为 obtpch 创建软连接

   ```shell
   sudo ln -s /usr/tpc-h-tools/tpc-h-tools/ /usr/local/

   ```
 3. 执行 TPC-H 测试

   ```obshell
   obd test tpch test --tenant=tpch_mysql -s 100 --remote-tbl-dir=/tmp/tpch100

   ```

   `obd test tpch` 命令的详细介绍可参见 [测试命令组](https://www.oceanbase.com/docs/community-obd-cn-1000000002023438) 中 **obd test tpch**。

   执行测试时需注意如下信息：

      - 示例中以待测试的集群名为 `test`，租户名为 `tpch_mysql` 为例，您需根据实际情况进行替换（可执行 `obd cluster list` 命令查看集群名，并执行 `obd cluster tenant show <deploy_name>` 命令查看集群中存在的租户）。同时，您也可根据自己的具体情况做一些参数上的调整。
      - 运行 `obd test tpch` 后，系统会详细列出运行步骤和输出，数据量越大耗时越久。
      - `remote-tbl-dir` 远程目录需具备足够能存储 TPC-H 测试数据的容量，建议单独一块盘存储加载测试数据。
      - `obd test tpch` 命令会自动完成所有操作，无需其他额外任何操作，包含测试数据的生成、传送、OceanBase 数据库参数优化、加载和测试。当中间环节出错时，您可通过配置参数进行重试，例如：配置 `--test-only` 跳过数据的生成和传送，直接进行加载和测试。

   执行测试后的输出结果如下：

   ```shell
   [2024-05-08 17:13:47]: start /home/admin/tmp/db1.sql
   [2024-05-08 17:13:53]: end /home/admin/tmp/db1.sql, cost 5.34s
   [2024-05-08 17:13:53]: start /home/admin/tmp/db2.sql
   [2024-05-08 17:13:53]: end /home/admin/tmp/db2.sql, cost 0.69s
   [2024-05-08 17:13:53]: start /home/admin/tmp/db3.sql
   [2024-05-08 17:13:55]: end /home/admin/tmp/db3.sql, cost 1.29s
   [2024-05-08 17:13:55]: start /home/admin/tmp/db4.sql
   [2024-05-08 17:13:56]: end /home/admin/tmp/db4.sql, cost 1.50s
   [2024-05-08 17:13:56]: start /home/admin/tmp/db5.sql
   [2024-05-08 17:14:00]: end /home/admin/tmp/db5.sql, cost 3.35s
   [2024-05-08 17:14:00]: start /home/admin/tmp/db6.sql
   [2024-05-08 17:14:00]: end /home/admin/tmp/db6.sql, cost 0.26s
   [2024-05-08 17:14:00]: start /home/admin/tmp/db7.sql
   [2024-05-08 17:14:02]: end /home/admin/tmp/db7.sql, cost 1.99s
   [2024-05-08 17:14:02]: start /home/admin/tmp/db8.sql
   [2024-05-08 17:14:05]: end /home/admin/tmp/db8.sql, cost 3.39s
   [2024-05-08 17:14:05]: start /home/admin/tmp/db9.sql
   [2024-05-08 17:14:09]: end /home/admin/tmp/db9.sql, cost 4.19s
   [2024-05-08 17:14:09]: start /home/admin/tmp/db10.sql
   [2024-05-08 17:14:10]: end /home/admin/tmp/db10.sql, cost 0.87s
   [2024-05-08 17:14:10]: start /home/admin/tmp/db11.sql
   [2024-05-08 17:14:11]: end /home/admin/tmp/db11.sql, cost 0.46s
   [2024-05-08 17:14:11]: start /home/admin/tmp/db12.sql
   [2024-05-08 17:14:12]: end /home/admin/tmp/db12.sql, cost 1.43s
   [2024-05-08 17:14:12]: start /home/admin/tmp/db13.sql
   [2024-05-08 17:14:13]: end /home/admin/tmp/db13.sql, cost 1.36s
   [2024-05-08 17:14:13]: start /home/admin/tmp/db14.sql
   [2024-05-08 17:14:14]: end /home/admin/tmp/db14.sql, cost 0.40s
   [2024-05-08 17:14:14]: start /home/admin/tmp/db15.sql
   [2024-05-08 17:14:14]: end /home/admin/tmp/db15.sql, cost 0.47s
   [2024-05-08 17:14:14]: start /home/admin/tmp/db16.sql
   [2024-05-08 17:14:15]: end /home/admin/tmp/db16.sql, cost 0.60s
   [2024-05-08 17:14:15]: start /home/admin/tmp/db17.sql
   [2024-05-08 17:14:16]: end /home/admin/tmp/db17.sql, cost 0.60s
   [2024-05-08 17:14:16]: start /home/admin/tmp/db18.sql
   [2024-05-08 17:14:18]: end /home/admin/tmp/db18.sql, cost 2.29s
   [2024-05-08 17:14:18]: start /home/admin/tmp/db19.sql
   [2024-05-08 17:14:18]: end /home/admin/tmp/db19.sql, cost 0.43s
   [2024-05-08 17:14:18]: start /home/admin/tmp/db20.sql
   [2024-05-08 17:14:19]: end /home/admin/tmp/db20.sql, cost 1.18s
   [2024-05-08 17:14:19]: start /home/admin/tmp/db21.sql
   [2024-05-08 17:14:24]: end /home/admin/tmp/db21.sql, cost 4.24s
   [2024-05-08 17:14:24]: start /home/admin/tmp/db22.sql
   [2024-05-08 17:14:25]: end /home/admin/tmp/db22.sql, cost 0.94s
   Total Cost: 37.26s

   ```

## TPC-C 测试

### TPC-C 概述

TPC-C 是一个对 OLTP（联机交易处理）系统进行测试的规范，使用一个商品销售模型对 OLTP 系统进行测试。详细信息可参见 [TPC-C 中文简介](https://github.com/domino-succ/tpcc-hbase/wiki/%E4%B8%AD%E6%96%87-TPC-C%E7%AE%80%E4%BB%8B)。

### 操作步骤

您可参照如下步骤使用 obd 对 OceanBase 集群进行 TPC-C 测试。

1. 安装 obtpcc

   ```shell
   sudo yum install -y yum-utils
   sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
   sudo yum install obtpcc java

   ```
 2. 执行 TPC-C 测试

   ```obshell
   obd test tpcc test --tenant=tpcc_mysql --warehouses=10  --run-mins=1

   ```

   `obd test tpcc` 命令的详细介绍可参见 [测试命令组](https://www.oceanbase.com/docs/community-obd-cn-1000000002023438) 中 **obd test tpcc**。

      - 示例中以待测试的集群名为 `test`，租户名为 `tpcc_mysql` 为例，您需根据实际情况进行替换（可执行 `obd cluster list` 命令查看集群名，并执行 `obd cluster tenant show <deploy_name>` 命令查看集群中存在的租户）。同时，您也可根据自己的具体情况做一些参数上的调整。
      - 运行 `obd test tpcc` 后，系统会详细列出运行步骤和输出，数据量越大耗时越久。
      - `obd test tpcc` 命令会自动完成所有操作，无需其他额外任何操作，包含测试数据的生成、传送、OceanBase 数据库参数优化、加载和测试。当中间环节出错时，您可通过配置参数进行重试，例如：配置 `--test-only` 跳过数据的生成和传送，直接进行加载和测试。

   ```shell
   TPC-C Result
   Measured tpmC (NewOrders)   : 3735.65
   Measured tpmTOTAL           : 8402.25
   Session Start               : 2024-05-09 10:35:53
   Session End                 : 2024-05-09 10:36:54
   Transaction Count           : 8492

   ```

## Sysbench 测试

### Sysbench 概述

Sysbench 是一个基于 LuaJIT 的可编写脚本的多线程基准测试工具，可以执行 CPU、内存、线程、IO 和数据库等方面的性能测试，常用于评估测试各种不同系统参数下的数据库负载情况，不需要修改源码，通过自定义 lua 脚本就可以实现不同业务类型的测试。Sysbench 主要包括以下几种测试：

- CPU 性能
 - 磁盘 IO 性能
 - 调度程序性能
 - 内存分配及传输速度
 - POSIX 线程性能
 - 数据库性能（OLTP 基准测试）

### 操作步骤

您可参照如下步骤使用 obd 对 OceanBase 集群进行 Sysbench 测试。

1. 安装 ob-sysbench

   ```shell
   sudo yum install -y yum-utils
   sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
   sudo yum install ob-sysbench

   ```
 2. 执行 Sysbench 测试

   ```obshell
   obd test sysbench test --tenant=sysbench_mysql --script-name=oltp_read_only.lua,oltp_write_only.lua,oltp_read_write.lua --table-size=1000000 --threads=32,64,128,256,512,1024 --rand-type=uniform

   ```

      - 示例中以待测试的集群名为 `test`，租户名为 `sysbench_mysql` 为例，您需根据实际情况进行修改。您可执行 `obd cluster list` 命令查看集群名，并执行 `obd cluster tenant show <deploy_name>` 命令查看集群中存在的租户。
      - 示例脚本中大幅参数使用的是默认值，您可根据自己的具体情况做一些参数上的调整。详细的命令介绍可参见 [测试命令组](https://www.oceanbase.com/docs/community-obd-cn-1000000002023438) 中 **obd test sysbench**。

   以使用的 Sysbench 脚本为 `oltp_read_write.lua`，启动的线程数量为 `1024` 的输出为例，输出结果如下：

   ```shell
   queries performed:
   read:                            458682
   write:                           61850
   other:                           134686
   total:                           655218
   transactions:                        32742  (526.50 per sec.)
   queries:                             655218 (10536.09 per sec.)
   ignored errors:                      21     (0.34 per sec.)
   reconnects:                          0      (0.00 per sec.)
   General statistics:
   total time:                          62.1862s
   total number of events:              32742
   Latency (ms):
   min:                                  986.50
   avg:                                 1922.86
   max:                                 6202.85
   95th percentile:                     2985.89
   sum:                             62958351.24
   Threads fairness:
   events (avg/stddev):           31.9746/0.16
   execution time (avg/stddev):   61.4828/0.41

   ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
