注册
达梦数据复制软件DMDRS配置参数-EXEC模块性能参数(二)
专栏/数+融合专栏/ 文章详情 /

达梦数据复制软件DMDRS配置参数-EXEC模块性能参数(二)

达梦数+数据融合软件(DMDF)产品团队 2026/08/06 116 0 0
摘要 介绍DMDRS EXEC模块的性能配置参数。

4.3.19 pub_buf_size

参数含义

EXEC模块公用缓冲区大小。

参数说明

该参数的原名为buffer。

EXEC模块初始化启动时,根据pub_buf_size配置大小,从操作系统一次性申请该大小的缓存空间,用于数据同步使用。本初始化内存被组织成多个内存池形式,并且可自动扩展。本缓存可供EXEC模块多个站点共用,数据同步时,EXEC模块各站点优先使用本站点的私有站点缓存,当私有站点缓存空间不足时,则会使用公用缓存。

注1:EXEC内存参数说明

recv_buf_size, site_buf_size, load_buf_limit是常见的影响同步/装载性能的内存参数。

recv_buf_size:recv_buf_size是每个装载/同步站点私有的缓冲区。当并行的站点数较多,或者数据量较大且事务入库速度较慢时,容易导致接收的日志操作未能被及时处理或存入到site_buf_size中而使缓冲区被占满,此时应该适当增加recv_buf_size的大小以减小缓冲区被占满的几率。

site_buf_size:site_buf_size是每个同步站点私有的缓冲区,从recv_buf_size中取出的消息在初步解析后会被存放到site_buf_size中。当站点间数据量不均,数据量较大且事务入库速度较慢时,site_buf_size空间可能不足,此时解析后的数据会被存放到所有站点公有的pub_buf_size中。若同时出现多个同步站点的site_buf_size空间不足的情况,此时应该适当增加site_buf_size的大小以减小缓冲区被占满的几率。

load_buf_limit:load_buf_limit是每个装载站点私有的缓冲区,从recv_buf_size中取出的消息在初步解析后会被存放到load_buf_limit中。当站点间数据量不均,数据量较大且事务入库速度较慢时,load_buf_limit空间可能不足,此时应该适当增加load_buf_limit的大小以减小缓冲区被占满的几率。

注2:EXEC内存占用计算公式

约定γ为最大同步站点数,ν为最大装载站点数。sum(κ)为所有group下的json_buf_size值的总和。max(κ)为所有group下最大的json_buf_size值。

EXEC最大占用内存为:

pub_buf_size + site_buf_size * γ + recv_buf_size * γ + (plan_vpool_size + 3) * work_thr + 1004 + load_buf_limit * ν + recv_buf_size * ν + plan_vpool_size * load_thr (MB)

当目标库为Kafka时,EXEC额外占用的内存为:

(work_thr + load_thr) * 14 + sum(κ) + (load_thr + 1) * max(κ) (MB)

参数值

取值范围:256~2147483647,单位:MB,默认值为512。

参数语法

<pub_buf_size></pub_buf_size>

参数示例

<pub_buf_size>2048</pub_buf_size>

4.3.20 recv_buf_size

参数含义

EXEC模块站点消息接收缓冲区大小。

参数说明

该参数的原名为recv_buffer。

EXEC模块在创建站点时,根据该参数值初始化站点消息接收内存池大小。消息接收与消息解析为异步执行,当消息解析较慢导致接收缓存区满时,则会阻塞新消息的接收,适当增大该参数,能够提高消息接收与消息解析的并行度,提高同步效率。

参数值

根据实际情况设置,单位:MB,默认值为8,最大值为512。

参数语法

<recv_buf_size></recv_buf_size>

参数示例

<recv_buf_size>128</recv_buf_size>

4.3.21 row_hash

参数含义

目标DMDRS进行冲突检测的范围。

参数说明

目标DMDRS从源DMDRS接收日志时,会在内存HASH中缓存一定数量的行信息。每一条DML操作都将在该HASH中查找与自己冲突的事务并记录,用于工作线程入库时判断并行执行条件,提升性能。注意:接收时仅做冲突检测,并行优化默认关闭,需要配置分组执行掩码ROW_HASH来启用。暂时不支持源数据库为DMDSC的情况。

每1000000行将占用约40MB内存。

参数值

取值范围:1~16777216,单位:行,默认值为50000。

参数语法

<row_hash></row_hash>

参数示例

<row_hash>1000000</row_hash>

4.3.22 site_buf_size

参数含义

每一个EXEC模块站点私有缓冲区大小。

参数说明

该参数的原名为site_buffer。

每一个源DMDRS在同步时,都会在同步执行端注册一个对应的同步站点结构,该功能参数用于分配同步站点可使用的初始化内存大小。

该内存主要用于同步事务的操作和数据缓存,同步活动事务越多,则对该内存的消耗越大。对于增量同步,该初始化内存大小固定,不再扩展;对于装载,该内存可在初始化内存基础上继续扩展,可通过设置load_buf_limit参数,控制装载同步可用的最大缓存内存大小。

参数值

根据实际情况设置,单位:MB,默认值为64。

参数语法

<site_buf_size></site_buf_size>

参数示例

<site_buf_size>1024</site_buf_size>

4.3.23 stat_interval

参数含义

统计信息的间隔时间。

参数说明

该参数的原名为statistic_schedule_time。

EXEC模块会定时向DSS模块索取统计信息,获取DSS的统计信息并保存。该参数仅适用于数据分发场景。

参数值

取值范围:大于1小于60的整数,单位:s,默认值为2。

参数语法

<stat_interval></stat_interval>

参数示例

<stat_interval>2</stat_interval>

4.3.24 work_thr

参数含义

执行入库的工作线程数。

参数说明

该参数的原名为threads。

当配置的分组数较多,分组间并行度较高,且分组内执行策略配置为并行执行,提高该参数的值可提高同步性能。

参数值

取值范围:1~256,默认值为32。

参数语法

<work_thr></work_thr>

参数示例

<work_thr>60</work_thr>
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服