---
title: "性能调优 | OceanBase 文档中心"
description: 性能调优 OBLOADER 的性能可从命令行选项、虚拟机参数和数据库内核等三个方面进行调优。 命令行选项调优 宽表或者列值较长，将 --batch 选项的参数值调小；反之则调大。 索引会影响数据导入的性能。除主键和唯一键以外，普通索引延迟到数据导入结束后再创建。 机器的负载和网络都较低时，视情况可调整 --threa…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*eAudSaxX8P0AAAAAAAAAAAAADiGDAQ/original) 导数工具V 4.2.1 社区版

# 性能调优

更新时间：2023-09-12 15:56:12

[编辑](https://github.com/oceanbase/obdumper-loader-doc/edit/V4.2.1/zh-CN/500.OBLOADER/400.obloader-performance-tuning.md)  

OBLOADER 的性能可从命令行选项、虚拟机参数和数据库内核等三个方面进行调优。

## 命令行选项调优

- 宽表或者列值较长，将 `--batch` 选项的参数值调小；反之则调大。
 - 索引会影响数据导入的性能。除主键和唯一键以外，普通索引延迟到数据导入结束后再创建。
 - 机器的负载和网络都较低时，视情况可调整 `--thread` 选项的参数值。

  #### 说明

  调优时可关注 OBLOADER 运行的机器、ODP 服务节点以及 OceanBase 集群中的各个节点的资源使用率。

## 虚拟机参数调优

请将导入脚本中的虚拟机参数修改为可用物理内存的 60%。默认值：-Xms4G -Xmx4G。

```shell
vim bin/obloader

JAVA_OPTS="$JAVA_OPTS -server -Xms4G -Xmx4G -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -Xss352K"

```

## 数据库内核调优

导入数据的性能会严重受到租户的增量内存写入速度的影响。

- 增量内存不足时，数据库会触发合并或者转储。合并比较消耗性能，尽量不要触发。可开启内存的转储，并将转储的次数设置为 100 以上。
 - 增量内存使用率达到租户限速阈值时，导入性能同时会下降。
 - 增量内存使用率已满时，数据很容易导入失败。建议租户限速的阈值高于 90 。转储相关参数的设置跟租户内存的大小、写入速度都有关系，需根据实际情况进行调优。内核相关的调优参数如下所示。

| **参数** | **默认值** | **说明** |
| --- | --- | --- |
| set global ob_sql_work_area_percentage=20; | 5 | SQL 执行过程中的内存占用百分比。    取值范围：[0, 100]。 |
| set global max_allowed_packet=1073741824; | 130023424 | 服务端可接收的最大的网络数据包大小。 |
| alter system set freeze_trigger_percentage=30; | 70 | 用于设置触发全局冻结的租户使用内存阈值。 major_freeze_trigger_percent=major_freeze 触发阈值 / memstore 容量 其中 memstore 容量是通过配置项 memstore_lmt_percent 计算所得。 计算公式：memstore_lmt_percent=memstore_limit/min_memory。    取值范围：[1, 99]。 |
| alter system set minor_freeze_times=500; | 5 | 用于设置多少次小合并触发一次全局合并。值为 0 时，表示关闭小合并。 内存超过预设限制会触发 minor freeze 或 major freeze，该参数指在连续两次触发 major freeze 之间触发 minor freeze 的次数。0 表示禁止自动触发 minor freeze。    取值范围：[0, 65536)。 |
| alter system set minor_compact_trigger=16; | - | 用于控制分层转储触发向下一层下压的阈值。 当该层的 Mini SSTable 总数达到设定的阈值时，所有 SSTable 都会被下压到下一层，组成新的 Minor SSTable。 |
| alter system set merge_thread_count=32; | 0 | 用于设置每日合并工作的线程数。 该配置项的值为 `0` 时，合并的工作进程数的计算方式为 `min{10,cpu_cnt*0.3}`，其中 `cpu_cnt` 为系统 CPU 的数量。 修改动态参数后，无需重启，即刻生效。    取值范围：[0, 256]。   #### 注意    OceanBase 4.0.0 及之后的版本已弃用该参数。 |
| alter system set minor_merge_concurrency=48; | 0 | 用于设置小合并时的并发线程数。    取值范围：[0, 64]。 |
| alter system set writing_throttling_trigger_percentage=100; | 100 | 设定服务端内存限流阈值（建议禁止打开服务端限流）。   #### 注意    OceanBase 2.2.30 及之后的版本才支持该系统参数，要求工具拥有防导爆能力。 |

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