---
title: "OceanBase Sysbench 高性能参数配置 - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: OceanBase Sysbench 高性能参数配置 本文以高性能为目标，对 OceanBase 数据库的安装部署、业务租户的创建以及 Sysbench 的使用细节进行说明，旨在帮助 OceanBase 数据库的使用者在 Sysbench 测试中跑出更好的性能。 OceanBase 数据库部署参数配置 概括 Ocea…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.5 LTS

# OceanBase Sysbench 高性能参数配置

更新时间：2026-04-07 20:57:20

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.5/zh-CN/700.reference/1100.performance-test/200.sysbench-benchmark-testing-on-oceanbase-database/300.oceanbase-sysbench-high-performance-parameter-configuration.md)  

本文以高性能为目标，对 OceanBase 数据库的安装部署、业务租户的创建以及 Sysbench 的使用细节进行说明，旨在帮助 OceanBase 数据库的使用者在 Sysbench 测试中跑出更好的性能。

## OceanBase 数据库部署参数配置

概括 OceanBase 数据库在安装部署过程中涉及到性能相关的参数配置，以及配置文件内容。

### 安装部署流程

- 开源版安装部署流程

  使用 OBD 部署：[使用命令行部署 OceanBase 数据库生产环境](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013496)
 - 企业版安装部署流程

     - 企业版部署：[部署流程](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013021)

### 安装部署参数说明

除了快速安装流程，一般都需要手动修改 `.yaml` 文件进行配置。OceanBase 数据库可配置的参数很多，本文重点关注性能相关的参数，详细信息请参考前面的部署文档。

- 查询配置项：`show parameters where name = 'xxx';`
 - 查询 Server 关键参数：`SELECT * FROM GV$OB_SERVERS;`

具体涉及到的配置项包含以下几个：

- **memory_limit**

     - 参数说明：OBServer 节点内存上限，优先于 `memory_limit_percentage` 配置项。
     - 默认值：0
     - 推荐配置：系统总内存的 80%~90%
     - 动态修改：`alter system set memory_limit='32G';`
     - 查询：`show parameters where name = 'memory_limit';`
     - 相关文档：[memory_limit](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015826)
 - **memory_limit_percentage**

     - 参数说明：OBServer 节点内存占系统内存的百分比，仅 `memory_limit` 为 0 时该配置项才生效。
     - 默认值：80
     - 推荐配置：80~90
     - 动态修改：`alter system set memory_limit_percentage=80;`
     - 查询：`show parameters where name = 'memory_limit_percentage';`
     - 相关文档：[memory_limit_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015788)
 - **system_memory**

     - 参数说明：系统租户占用的内存，包含在 `memory_limit` 里面，未配置的情况下会自适应设置。
     - 默认值：企业版：30G 社区版：0M
     - 推荐配置：`memory_limit` 的 10%
     - 动态修改：`alter system set system_memory='2G';`
     - 查询：`show parameters where name = 'system_memory';`
     - 相关文档：[system_memory](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015843)
 - **cpu_count**

     - 参数说明：OBServer 节点可用 CPU 总数。
     - 默认值：0，表示系统将会自动检测 CPU 数量。
     - 推荐配置：系统 CPU 总数，可通过 `lscpu` 查看。
     - 动态修改：`alter system set cpu_count=24;`
     - 查询：`show parameters where name = 'cpu_count';`
     - 相关文档：[cpu_count](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015658)
 - **net_thread_count**

     - 参数说明：网络线程数量。
     - 默认值：0（网络 I/O 线程数量为 max(6, CPU_NUM/8)）
     - 推荐配置：CPU 总数的 1/8，如果事务耗时较少，相对来说网络开销较大，可以设置为 CPU 总数的 20%
     - 该配置项只能在部署 OBServer 节点时静态设置，不能动态修改。
     - 查询：`show parameters where name = 'net_thread_count';`
     - 相关文档：[net_thread_count](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015855)
 - **sql_net_thread_count**

     - 参数说明：MySQL 模式下集群 IO 线程的个数。
     - 默认值：0，表示与配置项 `net_thread_count` 的值相同。
     - 相关文档：[sql_net_thread_count](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015872)
 - **datafile_size**

     - 参数说明：数据文件的总大小，优先于 `datafile_disk_percentage` 配置项。
     - 默认值：0
     - 推荐配置：与日志共用磁盘时设为磁盘空间的 60%，独占磁盘时设为磁盘空间的 90%。
     - 动态修改：`alter system set datafile_size='80G';`
     - 查询：`show parameters where name = 'datafile_size';`
     - 相关文档：[datafile_size](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015725)
 - **datafile_disk_percentage**

     - 参数说明：数据文件占用其所在磁盘总空间的百分比。
     - 默认值：0
     - 推荐配置：与日志共用磁盘时设为 60%，独占磁盘时设为 90%。
     - 动态修改：`alter system set datafile_disk_percentage=60;`
     - 查询：`show parameters where name = 'datafile_disk_percentage';`
     - 相关文档：[datafile_disk_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015736)
 - **log_disk_size**

     - 参数说明：Redo 日志文件的总大小，优先于 `log_disk_percentage` 配置项。
     - 默认值：0
     - 推荐配置：与数据共用磁盘时设为 30，独占磁盘时设为 90。
     - 动态修改：`alter system set log_disk_size='40G';`
     - 查询：`show parameters where name = 'log_disk_size';`

  相关文档：[log_disk_size](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015772)
 - **log_disk_percentage**
 - 参数说明：Redo 日志文件占用其所在磁盘总空间的百分比。
 - 默认值：0
 - 推荐配置：与数据共用磁盘时设为磁盘空间的 30%，独占磁盘时设为磁盘空间的 90%。
 - 动态修改：`alter system set log_disk_percentage=30;`
 - 查询：`show parameters where name = 'log_disk_percentage';`

  相关文档：[log_disk_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015630)

### 配置文件

以 32c128g 的机器规格为例，在磁盘空间充足的条件下，采用“3 个 OBServer 节点 + 1 个 OBProxy”的部署方式进行说明，暂不考虑 obagent 等其他组件。为了更好的性能，每个 OBServer 节点和 OBProxy 部署在不同的机器上，尽可能充分地利用机器的硬件资源。OceanBase 数据库及其 OBProxy 组件的部署配置文件如下：

```shell
oceanbase:
  servers:
    * name: server1
      ip: xxx.xxx.1.1
    * name: server2
      ip: xxx.xxx.1.2
    * name: server3
      ip: xxx.xxx.1.3
  server1:
    mysql_port: 2881
    rpc_port: 2882
    home_path: /data/1/user_name/observer1
    zone: zone1
  server2:
    mysql_port: 2881
    rpc_port: 2882
    home_path: /data/1/user_name/observer2
    zone: zone2
  server3:
    mysql_port: 2881
    rpc_port: 2882
    home_path: /data/1/user_name/observer3
    zone: zone3
  include: obd/observer.include.yaml
  global:
    devname: eth0
    memory_limit: '100G'
    system_memory: '2G'
    datafile_size: '80G'
    cpu_count: '32'
    net_thread_count: 6
obproxy:
  servers:
    * xxx.xxx.1.5
  depends:
    * oceanbase
  include: obd/obproxy.include.yaml
  global:
    listen_port: 2891
    prometheus_listen_port: 2892
    home_path: /data/1/user_name/obproxy

```

## 业务租户参数配置

如果用 OBD 自动部署，部署之后只有一个 sys 租户。需要创建一个专门进行性能测试的租户，尽可能充分利用 OBServer 节点的可用资源。

### 创建租户

OceanBase 数据库仅支持创建用户租户，系统租户由集群创建时自动创建。创建用户租户是一系列操作的组合，首先创建资源规格，然后基于该资源规格创建资源池，最后创建租户并指定其资源池。所以创建租户的顺序为：**资源规格 -> 资源池 -> 租户**。

有关创建租户的详细操作，参见 [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013128)。

这里以 32c128g 的机器为例，创建租户的命令如下：

```shell
sh create_perf_tenant.sh ip port

```

```shell
mysql -c -h $1 -P $2 -uroot -e "drop resource unit unit_1;"
mysql -c -h $1 -P $2 -uroot -e "create resource unit unit_1 max_cpu 24, min_cpu 16, memory_size 64000000000, log_disk_size 40000000000, max_iops 10000000;"
mysql -c -h $1 -P $2 -uroot -e "create resource pool pool_2 unit = 'unit_1', unit_num = 1, zone_list = ('zone1','zone2','zone3');"
mysql -c -h $1 -P $2 -uroot -e "create tenant perf replica_num = 3,primary_zone='zone1', resource_pool_list=('pool_2') set ob_tcp_invited_nodes='%';"
mysql -c -h $1 -P $2 -uroot@perf -e "set global ob_query_timeout = 50000000000;"
mysql -c -h $1 -P $2 -uroot@perf -e "set global ob_trx_timeout = 50000000000;"
mysql -c -h $1 -P $2 -uroot@perf -e "set global ob_plan_cache_percentage = 20;"
mysql -c -h $1 -P $2 -uroot@perf -e "set global binlog_row_image='MINIMAL';"
mysql -c -h $1 -P $2 -uroot -e "alter system set enable_early_lock_release=true tenant = perf;"
mysql -c -h $1 -P $2 -uroot -e "alter system set cpu_quota_concurrency=2 tenant = perf;"

```

如果建租户命令没有指定租户类型，默认是 MySQL 租户，指定了 Oracle 模式才是 Oracle 租户。

在 `sys` 租户下执行命令：

```sql
SELECT * FROM DBA_OB_TENANTS;

```

其中 `COMPATIBILITY_MODE` 字段表明了租户是什么模式。

### 租户关键配置

性能相关的租户配置项如下：

- **min_cpu**

     - 参数说明：租户最小可用 CPU 数量（`所有租户 min_cpu 之和` <= `cpu_count`）。
     - 推荐值：`cpu_count`/2
     - 相关文档：`min_cpu` 参数详细信息请参见 [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013128) 中 **创建资源单元** 的 **参数解释**。
 - **max_cpu**

     - 参数说明：租户最大可用 CPU 数量（`所有租户 max_cpu 之和` <= `cpu_count * resource_hard_limit/ 100`）。
     - 推荐值：`cpu_count`/2 ~ `cpu_count`（或者与 `min_cpu` 设成一样也行）
     - 相关文档：`min_cpu` 参数详细信息请参见 [创建租户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013128) 中 **创建资源单元** 的 **参数解释**。
 - **cpu_quota_concurrency**

     - 参数说明：租户每个 CPU 可以并发的线程数（`max_cpu * cpu_quota_concurrency` = 最大业务线程数）。
     - 推荐值：4（一般建议默认值不改，CPU 密集的压测可以改为 2。）
     - 相关文档：[cpu_quota_concurrency](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002015547)
 - **memory_size**

     - 参数说明：资源单元能够提供的 Memory 的大小。
     - 推荐值：总内存的 50%~80%（如果要创建多个资源单元，则需要灵活分配）。
 - **log_disk_size**

     - 参数说明：日志盘大小。
     - 推荐值：能够正常使用就可以，比如设置为 40~80GB，如果数据量很大则可以设置更大的数值。
 - **primary_zone**

     - 参数说明：主副本分配到 Zone 内的优先级，逗号两侧优先级相同，分号左侧优先级高于右侧。比如 `zone1,zone2,zone3`。
     - 推荐值：

           1. 三台机器规格相同且网络延迟相近，可以让 Leader 均匀分布，以提高性能 RANDOM。
           2. 如果其中一台性能更好，或者是为了方便统计和观察数据，也可以指定该 Zone，比如 `zone1`。

## 系统租户全局配置

连接系统租户修改集群级别的配置，比如修改日志级别，关闭 `sql_audit` 等影响性能的功能。常见的配置命令如下：

```shell
ALTER SYSTEM SET enable_sql_audit=false;
select sleep(5);
ALTER SYSTEM SET enable_perf_event=false;
ALTER SYSTEM SET syslog_level='ERROR';
alter SYSTEM SET enable_record_trace_log=false;

```

## Sysbench 参数配置

以 MySQL 租户为例，进行 Sysbench 的测试流程的准备和关键参数的配置。

### Sysbench 测试流程

- 准备数据

  ```shell
  cleanup：
  sysbench oltp_read_write.lua --mysql-host=x.x.x.x --mysql-port=xxxx --mysql-db=test --mysql-user=test@xxx --mysql-password=xxx --table_size=1000000 --tables=30 --rand-type=uniform --threads=1000  --report-interval=1 --time=600 cleanup
  prepare：
  sysbench oltp_read_write.lua --mysql-host=x.x.x.x --mysql-port=xxxx --mysql-db=test --mysql-user=test@xxx --mysql-password=test --table_size=1000000 --tables=30 --rand-type=uniform --threads=1000  --report-interval=1 --time=600 prepare

  ```
 - 运行测试

  ```shell
  sysbench oltp_read_write.lua --mysql-host=x.x.x.x --mysql-port=xxxx --mysql-db=test --mysql-user=test@xxx --mysql-password=xxx --table_size=1000000 --tables=30 --rand-type=uniform --threads=1000  --report-interval=1 --time=600 --db-ps-mode=disable run

  ```

### 性能关键参数配置

Sysbench 性能相关的关键参数推荐配置如下：

- **table_size**

     - 参数说明：每张表初始化的数据行数，默认 10000
     - 推荐值：100000, 1000000
 - **tables**

     - 参数说明：初始化表的数量
     - 推荐值：30 ~ 100
 - **threads**

     - 参数说明：测试线程的数量
     - 推荐值：500 ~ 2000（测试机 CPU 越多线程数可以越大）
 - **rand-type**

  参数说明：表示随机类型的模式，共有 4 种模式：`uniform`、`gaussian`、`special`、`pareto`，默认值为 `special`。

     1. `special`：Key 比较集中的分布模式，容易发生锁冲突。
     2. `uniform`：离散均匀分布，范围内所有数值出现概率均等，没有热点。
     3. `gaussian`：高斯分布，也就是正态分布，数据集中在中位数附近。
     4. `pareto`：帕累托分布，数据集中在最小值附近，越大的值出现概率越小。

  推荐值：`uniform`
 - **mysql-ignore-errors**

     - 参数说明：测试过程中忽略的错误码。Sysbench 一旦收到报错，就会停止发送新请求，直到当前请求全部返回，然后退出测试。因此如果是预期之内的问题，可以选择忽略相关错误码。
     - 可选值：`--mysql-ignore-errors=1062,1213,6002`，其中 `1062` 是主键、唯一索引冲突；`1213` 是 Dead Lock；`6002` 是 Trans Rollback。
 - **db-ps-mode**

     - 参数说明：SQL 是否需要预编译，模式有 `auto/disable`，默认为 `disable`。
     - 推荐值：`disable`（建议设置为 `disable`）
     - 如果设置了 `auto`，需要修改租户配置：`alter system set open_cursors=65535;`
 - **skip_trx**

     - 参数说明：跳过事务，在只读测试中可以选择是否跳过事务，默认为 OFF，即开启事务。
     - 推荐值：只读测试可以设置为 ON，其他情况默认。
 - **auto-inc**

     - 参数说明：ID 列是否自增，默认 ON。
     - 推荐值：OFF（写场景下建议关闭）
 - **warmup-time**

     - 参数说明：热身时间（单位为 s），表示测试开始多少时间之后正式开始统计，默认为 0。
     - 推荐值：10~30（数据量大时间可以略长）

有关 Sysbench 的详细参数配置，可通过 [Sysbench 参数详解](https://github.com/wing324/helloworld_zh/blob/master/Linux/sysbench/sysbench%E5%8F%82%E6%95%B0%E8%AF%A6%E8%A7%A3.md) 进行查看。

 上一篇 下一篇 ![有帮助](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) 咨询热线
