---
title: "最佳性能参数配置 | OceanBase 文档中心"
description: 最佳性能参数配置 本节主要从硬件配置、通用参数、MemStore 相关参数、Clog、事务及 RPC 相关参数、SQL 层及其他参数以及OBProxy 相关参数等方面提供最佳性能参数的配置参考。 硬件配置说明 作为原生的分布式关系数据库，OceanBase 数据库具有极强的可扩展性，服务器的硬件配置越高，数据库服务的…
---
切换语言

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

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

# 最佳性能参数配置

更新时间：2026-06-26 16:57:11

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.0.0/zh-CN/500.administrator-guide/600.basic-database-management/200.configuration-management/700.configuration-recommendations-for-best-performance-parameters-1.md)  

本节主要从硬件配置、通用参数、MemStore 相关参数、Clog、事务及 RPC 相关参数、SQL 层及其他参数以及OBProxy 相关参数等方面提供最佳性能参数的配置参考。

## 硬件配置说明

作为原生的分布式关系数据库，OceanBase 数据库具有极强的可扩展性，服务器的硬件配置越高，数据库服务的性能也会越好。

本文以下表中的服务器配置为例，提供最佳性能配置参考。

| 服务器配置项 | 描述 |
| --- | --- |
| 服务器数量 | 3 台 |
| 芯片 | Intel |
| CPU | 96 C |
| 内存 | 512 G |
| 磁盘 | 2TB NVME SSD 存储 |
| 网卡 | 万兆网卡 |
| 操作系统 | Linux kernel 3.1 及以上 |
| 文件系统 | 建议使用 EXT4 或 XFS |

## 通用参数（集群级参数）

在通用参数中，您可以通过调整以下集群级参数来使性能达到最佳。

### net_thread_count

**配置说明**

调整 Libeasy 网络的线程数，默认值为 `12`。适当的调低该配置项能降低线程切换的开销，提升性能。

**配置值**

建议配置为 CPU 核数的 1/6，最少 4 个。

**配置示例**

```sql
obclient> ALTER SYSTEM SET net_thread_count = 4;

```

### syslog_io_bandwidth_limit

**配置说明**

通过调整该参数的值，可以减小 `observer.log` 文件带来的 IO 消耗，但是调小该参数可能会导致丢失一些调试日志信息。

**配置值**

建议配置为 `10M`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET syslog_io_bandwidth_limit = '10M';

```

### clog_sync_time_warn_threshold

**配置说明**

Clog 日志同步慢时会触发 Debug 日志的输出。通过从默认值 `100ms` 调整为 `2000ms`，可以减少日志中输出的信息。

**配置值**

建议配置为 `2000ms`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET clog_sync_time_warn_threshold='2000ms';

```

### syslog_level

**配置说明**

调整日志的打印级别，降低打印日志的开销，对性能会一定的好处，但是调整该参数可能会导致丢失一些调试日志信息。

**配置值**

建议配置为 `INFO`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET syslog_level=`INFO`;

```

## 通用参数（租户级参数）

### cpu_quota_concurrency

**配置说明**

控制并发任务的个数，默认值为 `4`。如果 CPU 使用过于繁忙，可以尝试调为 `2` ；如果并发很大，可以考虑再调大。适当的调低该配置项能降低线程切换的开销，提升性能。

**配置值**

建议配置为 `4`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET cpu_quota_concurrency = 4;

```

### memory_limit_percentage

**配置说明**

调整 OceanBase 数据库占系统总内存的比例，提高 OceanBase 数据库可用的内存量。

**配置值**

建议配置为 `80`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET memory_limit_percentage = 80;

```

### memstore_limit_percentage

**配置说明**

调整 MemStore 占租户的内存比，需要尽量增大 MemStore 的空间，但是可能对读操作会有影响。

**配置值**

建议配置为 `50`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET memstore_limit_percentage =  50;

```

## MemStore 相关参数（租户级参数）

### freeze_trigger_percentage

**配置说明**

调整启动冻结或转储的时机，让转储（Minor Compaction）尽早启动，使 MemStore 内存尽早释放。

**配置值**

建议配置为 `70`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET freeze_trigger_percentage = 70;

```

### writing_throttling_trigger_percentage

**配置说明**

调整写入速度的阈值，在 MemStore 的内存使用率达到 80% 时便开启写入限速。

**配置值**

**配置示例**

```sql
obclient> ALTER SYSTEM SET writing_throttling_trigger_percentage = 80;

```

### writing_throttling_maximum_duration

**配置说明**

触发写入限速后，调整限速的速率，控制剩余内存最多支持 1 小时的写入。

**配置值**

建议配置为 `1h`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET writing_throttling_maximum_duration = '1h';

```

## Clog、事务及 RPC 相关参数（集群级参数）

### _ob_trans_rpc_timeout

**配置说明**

增大事务处理的 RRC 超时时间（默认 3s 就会报错），减少 `transaction need rollback` 发生的概率。

> **说明**
>
>  
>
> 由于 `_xx_xx` 格式的参数为隐藏参数，无法通过 `SHOW PARAMETERS` 语句来查询，您可以通过以下 SQL 语句查看该参数。

```sql
obclient> SELECT * FROM oceanbase.__all_virtual_sys_parameter_stat WHERE name='_ob_trans_rpc_timeout';

```

**配置值**

建议配置为 `25s`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET _ob_trans_rpc_timeout = '25s';

```

### memory_chunk_cache_size

**配置说明**

该参数用于设置内存分配器缓存的内存块容量。降低 OceanBase 数据库内部 2 MB 内存块被操作系统回收的概率，增大 2 MB 内存块在 OceanBase 数据库内部的复用率，减少 RPC 因内存操作慢而导致超时的风险。

**配置值**

建议配置为 `0M`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET memory_chunk_cache_size = '0M';

```

### trx_2pc_retry_interval

**配置说明**

该参数值过大会导致 Coordinator 和参与者之间的重试间隔过大，从而导致 Commit 时间过长，进一步影响查询效果。如果参数值过小，又可能导致 Schedular 频繁的重试。

**配置值**

建议配置为 `500ms`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET trx_2pc_retry_interval = '500ms';

```

### high_priority_net_thread_count

**配置说明**

用于设置单独给 Election 等使用的网络线程，需要重启 OBServer 才能生效。设置后，通过检查日志中的 `HIGH PRIO RPC EASY STAT` 关键字，可以看到这些线程处理请求的总数。

**配置值**

建议配置为 `2`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET high_priority_net_thread_count = 2;

```

### __easy_memory_limit

**配置说明**

通过调大 Libeasy 可使用的最大内存来调大发往单个 OBServer 的 RPC Packet 的排队上限。

> **说明**
>
>  
>
> 由于 `__xx_xx` 格式的参数为隐藏参数，无法通过 `SHOW PARAMETERS` 语句来查询，您可以通过以下 SQL 语句查看该参数。

```sql
obclient> SELECT * FROM oceanbase.__all_virtual_sys_parameter_stat WHERE name='__easy_memory_limit';

```

**配置值**

建议配置为 `20G`。

**配置示例**

```sql
obclient>ALTER SYSTEM SET __easy_memory_limit = '20G' ;

```

### __easy_memory_reserved_percentage

**配置说明**

与 `__easy_memory_limit` 配合使用，可以降低 Easy 占用太多内存的风险。

```sql
obclient> SELECT * FROM oceanbase.__all_virtual_sys_parameter_stat WHERE name='__easy_memory_reserved_percentage';

```

**配置值**

建议配置为 `10` **。**

**配置示例**

```sql
obclient> ALTER SYSTEM SET __easy_memory_reserved_percentage = 10 ;

```

## SQL 层及其他参数（集群级参数）

### enable_sql_operator_dump

**配置说明**

允许 SQL 层操作（例如，Hash Join）Dump 中间结果，避免因超出内存大小限制而报错。

**配置值**

建议配置为 `True`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET enable_sql_operator_dump = true;

```

### large_query_threshold

**配置说明**

调整大查询的阈值。

**配置值**

建议配置为 `100s`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET large_query_threshold = '100s';

```

### trace_log_slow_query_watermark

**配置说明**

调整日志中记录 Slow Query 的阈值。Slow Query 在批处理中普遍耗时较长，调大该值可以降低 Slow Query 的记录数量。

**配置值**

建议配置为 `10s`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET trace_log_slow_query_watermark = '10s';

```

### enable_sql_audit

**配置说明**

设置是否开启 SQL 执行信息的采集。关闭该配置项可以降低 CPU 资源消耗。

**配置值**

**配置示例**

```sql
obclient> ALTER SYSTEM SET enable_sql_audit=True;

```

### autoinc_cache_refresh_interval

**配置说明**

调大自增列刷新的频率，可以减少性能损耗。

**配置值**

建议配置为 `86400s`。

**配置示例**

```sql
obclient> ALTER SYSTEM SET autoinc_cache_refresh_interval='86400s';

```

### enable_perf_event

**配置说明**

设置是否开启性能监控信息采集。关闭该配置项可以降低 CPU 资源消耗，提升性能，但是会丢失监控信息。

**配置值**

**配置示例**

```sql
obclient> ALTER SYSTEM SET enable_perf_event=True;

```

## SQL 层及其他参数（租户级参数）

### ob_enable_batched_multi_statement

**配置说明**

设置是否启用批处理功能的成组执行优化。

**配置值**

**配置示例**

```sql
obclient>ALTER SYSTEM SET ob_enable_batched_multi_statement = True;

```

## SQL 层及其他参数（系统变量）

### ob_sql_work_area_percentage

**配置说明**

调大租户的 SQL 层可使用的内存空间占比。

**配置值**

建议配置为 `30`。

**配置示例**

```sql
obclient> SET GLOBAL ob_sql_work_area_percentage = 30;

```

### ob_query_timeout

**配置说明**

用于设置 SQL 最大执行时间。

**配置值**

建议配置为`3600000000`，表示 3600 秒。

**配置示例**

```sql
obclient> SET GLOBAL ob_query_timeout = 3600000000;

```

### ob_trx_idle_timeout

**配置说明**

增大事务空闲超时时长。

**配置值**

建议配置为 `300000000`，表示 300 秒。

**配置示例**

```sql
obclient> SET GLOBAL ob_trx_idle_timeout = 300000000;

```

### ob_trx_timeout

**配置说明**

增大事务超时时长。

**配置值**

建议配置为`2400000000`，表示 2400 秒。

**配置示例**

```sql
obclient> SET GLOBAL ob_trx_timeout = 2400000000;

```

### parallel_servers_target

**配置说明**

提高 PX 的并行度的上限。

**配置值**

建议配置为 `900`。

**配置示例**

```sql
obclient> SET GLOBAL parallel_servers_target = 900;

```

### max_allowed_packet

**配置说明**

调整最大网络包大小。

> **说明**
>
>  
>
> 该变量不能通过 `ALTER SESSION SET xxx = yyy;` 语句的方式使其仅在当前 Session 生效，只能通过 `SET GLOBAL xxx = yyy` 语句这种全局生效的修改方式。 使用时一般客户端与 Server 端均需要调整。

**配置值**

建议配置为 `41943040`。

**配置示例**

```sql
obclient> SET GLOBAL max_allowed_packet = 41943040;

```

## OBProxy 相关参数

### enable_compression_protocol

**配置说明**

关闭压缩，减少 OBProxy 对 CPU 的占用。需要重启 OBProxy 机器才能生效。

**配置值**

建议配置为 `False`。

**配置示例**

```sql
obclient> ALTER PROXYCONFIG SET enable_compression_protocol = False;

```

### automatic_match_work_thread

**配置说明**

开启自动计算线程个数。需要重启 OBProxy 机器才能生效。

**配置值**

**配置示例**

```sql
obclient> ALTER PROXYCONFIG SET automatic_match_work_thread = True;

```

### monitor_log_level

**配置说明**

设置监控日志的打印级别。

**配置值**

建议配置为 `ERROR`。

**配置示例**

```sql
obclient> ALTER PROXYCONFIG SET monitor_log_level = 'ERROR';

```

### xflush_log_level

**配置说明**

设置 xflush 日志的日志打印级别。

**配置值**

**配置示例**

```sql
obclient> ALTER PROXYCONFIG SET xflush_log_level="ERROR";

```

设置系统日志的日志打印级别。

**配置值**

**配置示例**

```sql
obclient> ALTER PROXYCONFIG SET sys_log_level="ERROR";

```

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