更新时间:2025-07-08 GMT+08:00
分享

通信库参数

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

tcp_keepalives_idle

参数说明:在支持TCP_KEEPIDLE套接字选项的系统上,设置发送活跃信号的间隔秒数。不设置发送保持活跃信号,连接就会处于闲置状态。

参数类型:USERSET

  • 如果操作系统不支持TCP_KEEPIDLE选项 ,这个参数的值必须为0。
  • 在通过Unix域套接字进行的连接的操作系统上,这个参数将被忽略。

取值范围:整型,0~3600,单位为秒(s)。

默认值:0

tcp_keepalives_interval

参数说明:在支持TCP_KEEPINTVL套接字选项的操作系统上,以秒数声明在重新传输之间等待响应的时间。

参数类型:USERSET

取值范围:整型,0~180,单位为秒(s)。

默认值:0

  • 如果操作系统不支持TCP_KEEPINTVL选项,这个参数的值必须为0。
  • 在通过Unix域套接字进行的连接的操作系统上,这个参数将被忽略。

tcp_keepalives_count

参数说明:在支持TCP_KEEPCNT套接字选项的操作系统上,设置GaussDB(DWS)服务端在断开与客户端连接之前可以等待的保持活跃信号个数。

参数类型:USERSET

  • 如果操作系统不支持TCP_KEEPCNT选项,这个参数的值必须为0。
  • 在通过Unix域套接字进行连接的操作系统上,这个参数将被忽略。

取值范围:整型,0~100,其中0表示GaussDB(DWS)未收到客户端反馈的保持活跃信号则立即断开连接。

默认值:0

comm_max_datanode

参数说明:通信库支持的最大DN数。

参数类型:USERSET

取值范围:整型,1~8192

默认值:实际DN数

该参数值的DN数由小调大时立即生效,由大调小时需重启集群生效。

comm_max_stream

参数说明:通信库缓存的最大逻辑连接数据结构量。

参数类型:SIGHUP

取值范围:整型,1~65535

默认值:1024

如果comm_max_datanode参数值较小,进程内存充足,可以适当将comm_max_stream值调大。

max_stream_pool

参数说明:设置stream线程池能够容纳stream线程的最大个数。该参数8.1.2及以上版本支持。

参数类型:SUSET

取值范围:整型,-1~INT_MAX,-1和0表示关闭stream线程池。

默认值:

  • 新安装集群默认值计算公式为:max_stream_pool=MIN(max_connections, max_process_memory/16/5MB, 1024)
  • 旧集群升级到8.3.0.100及以上新集群版本的默认值计算公式为:max_stream_pool=MIN(max_connections, max_process_memory/16/5MB, 1024,旧集群值),升级时也强制应用新装集群的设置值,当旧值小时取旧值。
  • 支持实时减少线程池中stream线程的个数;若增大该参数值,stream线程的个数由业务驱动向上增长。
  • 通常情况下不建议调整该参数值,因为stream线程池有自动清理功能。
  • 如果stream空闲线程过多造成内存占用,可以调小此值以节约内存。

enable_stream_sync_quit

参数说明:设置stream计划结束时,stream线程是否同步退出。该参数仅8.3.0及以上集群版本支持。

参数类型:USERSET

取值范围:布尔型

  • on表示stream计划结束后,等待stream线程组内的线程统一退出。
  • off表示stream计划结束后,stream线程直接退出,无需等待stream线程组内的线程统一退出。

默认值:off

enable_connect_standby

参数说明:设置CN连接DN备机。该参数仅8.3.0及以上集群版本支持。

参数类型:USERSET

取值范围:布尔型

  • on表示CN连接备机。
  • off表示CN连接DN主机。

默认值:off

  • 不建议在日常业务中使用此参数,仅适用于运维操作,更不建议使用gs_guc工具进行全局设置。否则可能会导致数据不一致,结果集错误等问题。
  • 已创建临时表的session打开此参数后将造成DN上的临时表数据丢失,后续无法进行临时表相关操作。

comm_quota_size

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

参数类型:USERSET

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

默认值:1MB

comm_usable_memory

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

参数类型:SIGHUP

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

默认值:max_process_memory/8

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

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

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

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

参数类型:USERSET

取值范围:布尔型

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

默认值:off

comm_ackchk_time

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

参数类型:USERSET

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

默认值:2000

comm_timer_mode

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

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

参数类型:USERSET

取值范围:布尔型

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

默认值:off

comm_stat_mode

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

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

参数类型:USERSET

取值范围:布尔型

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

默认值:off

client_connection_check_interval

参数说明客户端连接状态检测时间间隔。该参数仅8.2.0及以上集群版本支持。

参数类型:USERSET

取值范围:整型,0 ~ INT_MAX,单位为毫秒。0表示不检测客户端连接状态。

默认值:10000

通过gsql/jdbc/odbc等客户端直连CN执行长查询,在长查询执行期间:

  • CN每隔client_connection_check_interval时间检测一次客户端连接状态,若检测到客户端与CN的连接已经断开,则服务端主动终止长查询的执行,释放相关资源,避免集群资源浪费。
  • DN每隔client_connection_check_interval时间检测一次CN与DN的连接状态,若检测到CN与DN的连接已经断开,则DN主动终止长查询的执行,释放相关资源,避免集群资源浪费。

conn_recycle_timeout

参数说明用于控制将CN和其他节点间空闲连接回收到连接池的时间间隔。该参数仅8.2.1及以上集群版本支持。

参数类型:USERSET

取值范围:整型,0 ~ 3600,单位为秒(s)。0表示关闭空闲连接回收功能。

默认值:30

相关文档