---
title: "流量控制 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 流量控制 说明 本文档适用于 obcdc V3.2.4.5 之后版本、V4.0 之前以及 V4.2.1 之后的版本。 obcdc 流控能力可以在大部分场景下，将 obcdc 运行过程中使用的内存控制在用户预期附近。您可以通过 memory_limit 配置项调节您预期的 obcdc 内存占用。 obcdc 内部存在多…
---
切换语言

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

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

# 流量控制

更新时间：2026-02-26 14:40:53

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/1500.Components-and-Tools/300.data-integrate/400.cdc/400.traffic-control.md)

#### 说明

本文档适用于 obcdc V3.2.4.5 之后版本、V4.0 之前以及 V4.2.1 之后的版本。

obcdc 流控能力可以在大部分场景下，将 obcdc 运行过程中使用的内存控制在用户预期附近。您可以通过 `memory_limit` 配置项调节您预期的 obcdc 内存占用。

obcdc 内部存在多个模块，事务数据在各模块间流转。整体数据生产消费模型可以粗略理解为多个串联起来的生产-消费模型，我们将流控调节分为两个大模块的内存控制：数据消费模块和拉日志模块。

## 数据消费模块限流

如果用户消费慢，我们会控制数据消费模块的任务下发进度，防止生产大量数据却得不到消费导致内存占用过多的情况。obcdc 根据消费队列和资源回收队列的任务积压情况判断下游消费速度：积压比例超过 pause_redo_dispatch_task_count_threshold/100，且内存占用达到报警阈值（memory_limit * memory_usage_warn_threshold/100），或处理中的 REDO 日志达到一定阈值）时，即判定下游消费速度慢。

您可以通过 `NEED_PAUSE_REDO_DISPATCH=1` 日志关键字从 `libobcdc.log` 中获取消费模块限流的日志，其中的 REASON 字段说明了具体的限流原因。

## 拉日志模块限流

以下情况，obcdc 将触发拉日志流控：

- 内存占用达到报警阈值（memory_limit * memory_usage_warn_threshold/100）。
 - 内存中活跃事务超过一定阈值，且已经触发了数据消费流控。
 - 定序模块任务积压。
 - 数据持久化任务积压。

您可以通过 `NEED_SLOW_DOWN=1` 日志关键字从 `libobcdc.log` 中获取拉日志限流的日志，其中的 REASON 字段说明了具体的限流原因。

上文提到的部分参数说明如下：

| 配置项 | 默认值 | 取值范围 | 说明 |
| --- | --- | --- | --- |
| memory_limit | 8G | [2G, +∞) | 期望的 obcdc 的内存占用 |
| memory_usage_warn_threshold | 85 | [0,100] | 开始流控检测的内存占用阈值 |
| pause_redo_dispatch_task_count_threshold | 80 | [0, 100] | 触发消费模块限流的用户消费队列和资源回收队列的积压占比的阈值 |

obcdc 内部还有更多的细粒度的流控调整算法和响应的流控参数，这些参数可以根据您配置的 `memory_limit` 自适应调整，但很少部分场景下可能需要对这些参数进行微调。这里列出这些参数供参考。但大部分情况下，您不需要调整这些参数。

流控相关的 obcdc 会自动调节的配置项如下，详细介绍可参见 [obcdc 配置项说明](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479344)。

- redo_dispatcher_memory_limit
 - extra_redo_dispatch_memory_size
 - redo_dispatched_memory_limit_exceed_ratio
 - part_trans_task_active_count_upper_bound
 - part_trans_task_reusable_count_upper_bound
 - ready_to_seq_task_upper_bound
 - storager_task_count_upper_bound
 - storager_mem_percentage

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