更新时间:2022-06-13 GMT+08:00

通信库参数

本节介绍通信库相关的参数设置及取值范围等内容。

comm_tcp_mode

参数说明通信库使用TCP或SCTP协议建立数据通道的切换开关,重启集群生效。

参数类型:POSTMASTER

取值范围:布尔型,CN设置为on表示使用TCP模式连接DN,DN设置为on表示DN间使用TCP代理通信。

默认值:on

comm_sctp_port

参数说明:TCP代理通信库或SCTP通信库使用的TCP或SCTP协议监听端口。

参数类型:POSTMASTER

集群部署时会自动分配此端口号,请不要轻易修改此参数,如端口号配置不正确会导致数据库通信失败。

取值范围:整型,0~65535

默认值:port+本机主DN数*2+本DN在本机DN序号

comm_control_port

参数说明:TCP代理通信库或SCTP通信库使用的TCP协议监听端口。

参数类型:POSTMASTER

取值范围:整型,0~65535

默认值:port+本机主DN数*2+本DN在本机DN序号+1

集群部署时会自动分配此端口号,请不要轻易修改此参数,如端口号配置不正确会导致数据库通信失败。

comm_max_datanode

参数说明:TCP代理通信库或SCTP通信库支持的最大DN数。

参数类型:USERSET

取值范围:整型,1~8192

默认值:实际DN数

comm_max_stream

参数说明:TCP代理通信库或SCTP通信库支持的最大并发数据流数。该参数值必须大于并发数*每并发平均stream算子数*(smp的平方)

参数类型:POSTMASTER

取值范围:整型,1~60000

默认值:通过公式min(query_dop_limit * query_dop_limit * 2 * 20, max_process_memory(字节) * 0.005 /(最大CN数+当前DN数) / 260)计算,小于1024按照1024取值,其中,query_dop_limit = 单个机器CPU核数 / 单个机器DN数。

  • 不建议该参数值设置过大,因为comm_max_stream会占用内存(占用内存=256byte*comm_max_stream*comm_max_datanode),若并发数据流数过大,查询较为复杂及smp过大都会导致内存不足。
  • 如果comm_max_datanode参数值较小,进程内存充足,可以适当将comm_max_stream值调大。

comm_max_receiver

参数说明:TCP代理通信库或SCTP通信库内部接收线程数量。

参数类型:POSTMASTER

取值范围:整型,1~50

默认值:4

comm_quota_size

参数说明:TCP代理通信库或SCTP通信库最大可连续发送包总大小。使用1GE网卡时,建议取较小值,推荐设置为20KB~40KB。

参数类型:USERSET

取值范围:整型,0~102400,默认单位为KB。0表示不使用quota机制。

默认值:1MB

comm_usable_memory

参数说明:单个DN内TCP代理通信库或SCTP通信库缓存最大可使用内存。

参数类型:POSTMASTER

取值范围:整型,102400~INT_MAX/2,默认单位为KB。安装时最小值不得小于1GB。

默认值:max_process_memory/8

此参数需根据环境内存及部署方式具体配置,过大会造成OOM,过小会降低TCP代理通信库或SCTP通信库性能。

comm_memory_pool_percent

参数说明:单个DN内TCP代理通信库或SCTP通信库可使用内存池资源的百分比,用于自适应负载预留通信库通信消耗的内存大小。

参数类型:POSTMASTER

取值范围:整型,0~100

默认值:0

此参数需根据实际业务情况做调整,若通信库使用内存小,可设置该参数数值较小,反之设置数值较大。

comm_client_bind

参数说明通信库客户端发起连接时是否使用bind绑定指定IP。

参数类型:USERSET

取值范围:布尔型

  • on表示绑定指定IP。
  • off表示不绑定指定IP。

如果集群某一节点存在多个IP处于同一通信网段时,需设置为on。此时将绑定本地listen_addresses指定的IP发起通信,随机端口号不能重复使用,集群并发数量会受到可用随机端口号数量的限制。

默认值:off

comm_no_delay

参数说明是否使用通信库连接的NO_DELAY属性,重启集群生效。

参数类型:USERSET

取值范围:布尔型

默认值:off

如果集群出现因每秒接收数据包过多导致的丢包时,需设置为off,以便小包合并成大包发送,减少数据包总数。

comm_debug_mode

参数说明:TCP代理通信库或SCTP通信库debug模式开关,该参数设置是否打印通信层详细日志,session级别生效。

设置为on时,打印日志量较大,会增加额外的overhead并降低数据库性能,仅在调试时打开,打开后及时关闭。

参数类型:USERSET

取值范围:布尔型

  • on表示打印通信库详细debug日志。
  • off表示不打印通信库详细debug日志。

默认值:off

comm_ackchk_time

参数说明:无数据包接收情况下,该参数设置通信库服务端主动ACK触发时长。

参数类型:USERSET

取值范围:整型,0~20000,单位为毫秒(ms)。取值为0表示关闭此功能。

默认值:2000

comm_timer_mode

参数说明:TCP代理通信库或SCTP通信库timer模式开关,该参数设置是否打印通信层各阶段时间桩,session级别生效。

设置为on时,打印日志量较大,会增加额外的overhead并降低数据库性能,仅在调试时打开,打开后及时关闭。

参数类型:USERSET

取值范围:布尔型

  • on表示打印通信库详细时间桩日志。
  • off表示不打印通信库详细时间桩日志。

默认值:off

comm_stat_mode

参数说明:TCP代理通信库或SCTP通信库stat模式开关,该参数设置是否打印通信层的统计信息,session级别生效。

设置为on时,打印日志量较大,会增加额外的overhead并降低数据库性能,仅在调试时打开,打开后及时关闭。

参数类型:USERSET

取值范围:布尔型

  • on表示打印通信库统计信息日志。
  • off表示不打印通信库统计信息日志。

默认值:off

enable_stateless_pooler_reuse

参数说明pooler复用切换开关,重启集群生效。

参数类型:POSTMASTER

取值范围:布尔型

  • on/true表示使用pooler复用模式。
  • off/false表示关闭pooler复用模式。

    CN和DN需要同步设置。如果CN设置enable_stateless_pooler_reuse为off,DN设置enable_stateless_pooler_reuse为on会导致集群不能正常通信,因此必须对该参数做CN和DN全局相同的配置,重启集群生效。

默认值:off

comm_cn_dn_logic_conn

参数说明CN和DN间逻辑连接特性开关,重启集群生效。

参数类型:POSTMASTER

取值范围:布尔型

  • on/true表示CN和DN之间连接为逻辑链接,使用libcomm组件。
  • off/false表示CN和DN之间连接为物理连接,使用libpq组件。

    如果CN设置comm_cn_dn_logic_conn为off,DN设置comm_cn_dn_logic_conn为on会导致集群不能正常通信,因此必须对该参数做CN和DN全局相同的配置,重启集群生效。

默认值:off