
# 通信库参数
本节介绍通信库相关的参数设置及取值范围等内容。
#### tcp_keepalives_idle
**参数说明：**在支持TCP_KEEPIDLE套接字选项的系统上，设置发送活跃信号的间隔秒数。不设置发送保持活跃信号，连接就会处于闲置状态。
**参数类型：**USERSET
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
- 如果操作系统不支持TCP_KEEPIDLE选项 ，这个参数的值必须为0。
- 在通过Unix域套接字进行的连接的操作系统上，这个参数将被忽略。
 
**取值范围：**整型，0\~3600，单位为秒（s）。
**默认值：**0
#### tcp_keepalives_interval
**参数说明：**在支持TCP_KEEPINTVL套接字选项的操作系统上，以秒数声明在重新传输之间等待响应的时间。
**参数类型：**USERSET
**取值范围：**整型，0\~180，单位为秒（s）。
**默认值：**0
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
- 如果操作系统不支持TCP_KEEPINTVL选项，这个参数的值必须为0。
- 在通过Unix域套接字进行的连接的操作系统上，这个参数将被忽略。
 
#### tcp_keepalives_count
**参数说明：**在支持TCP_KEEPCNT套接字选项的操作系统上，设置DWS服务端在断开与客户端连接之前可以等待的保持活跃信号个数。
**参数类型：**USERSET
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
- 如果操作系统不支持TCP_KEEPCNT选项，这个参数的值必须为0。
- 在通过Unix域套接字进行连接的操作系统上，这个参数将被忽略。
 
**取值范围：**整型，0\~100，其中0表示DWS未收到客户端反馈的保持活跃信号则立即断开连接。
**默认值：**0
 #### comm_max_datanode
**参数说明：**通信库支持的最大DN数。
**参数类型：**USERSET
**取值范围：**整型，1\~8192
**默认值：**实际DN数
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
该参数值的DN数由小调大时立即生效，由大调小时需重启集群生效。
#### comm_max_stream
**参数说明：**通信库缓存的最大逻辑连接数据结构量。
**参数类型：**SIGHUP
**取值范围：**整型，1\~65535
**默认值：**1024
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
如果[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，旧集群值)，升级时也强制应用新装集群的设置值，当旧值小时取旧值。
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
- 支持实时减少线程池中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
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/caution_3.0-zh-cn.png)
- 不建议在日常业务中使用此参数，仅适用于运维操作，更不建议使用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
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
此参数需根据环境内存及部署方式具体配置，过大会造成OOM，过小会降低通信库性能。
#### comm_client_bind
**参数说明** **：**通信库客户端发起连接时是否使用bind绑定指定IP。
**参数类型：**USERSET
**取值范围：**布尔型
- on表示绑定指定IP。
- off表示不绑定指定IP。
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
如果集群某一节点存在多个IP处于同一通信网段时，需设置为on。此时将绑定本地listen_addresses指定的IP发起通信，随机端口号不能重复使用，集群并发数量会受到可用随机端口号数量的限制。
**默认值：**off
#### comm_no_delay
**参数说明** **：**是否使用通信库连接的NO_DELAY属性，重启集群生效。
**参数类型：**USERSET
**取值范围：**布尔型
**默认值：**off
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
如果集群出现因每秒接收数据包过多导致的丢包时，需设置为off，以便小包合并成大包发送，减少数据包总数。
#### comm_debug_mode
**参数说明：**通信库debug模式开关，该参数设置是否打印通信层详细日志，session级别生效。
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
设置为on时，打印日志量较大，会增加额外的overhead并降低数据库性能，仅在调试时打开，打开后及时关闭。
**参数类型：**USERSET
**取值范围：**布尔型
- on表示打印通信库详细debug日志。
- off表示不打印通信库详细debug日志。
**默认值：**off
#### comm_ackchk_time
**参数说明：**无数据包接收情况下，该参数设置通信库服务端主动ACK触发时长。
**参数类型：**USERSET
**取值范围：**整型，0\~20000，单位为毫秒（ms）。取值为0表示关闭此功能。
**默认值：**2000
#### comm_timer_mode
**参数说明：**通信库timer模式开关，该参数设置是否打印通信层各阶段时间桩，session级别生效。
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
设置为on时，打印日志量较大，会增加额外的overhead并降低数据库性能，仅在调试时打开，打开后及时关闭。
**参数类型：**USERSET
**取值范围：**布尔型
- on表示打印通信库详细时间桩日志。
- off表示不打印通信库详细时间桩日志。
**默认值：**off
#### comm_stat_mode
**参数说明：**通信库stat模式开关，该参数设置是否打印通信层的统计信息，session级别生效。
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
设置为on时，打印日志量较大，会增加额外的overhead并降低数据库性能，仅在调试时打开，打开后及时关闭。
**参数类型：**USERSET
**取值范围：**布尔型
- on表示打印通信库统计信息日志。
- off表示不打印通信库统计信息日志。
**默认值：**off
#### client_connection_check_interval
**参数说明** **：**客户端连接状态检测时间间隔。该参数仅8.2.0及以上集群版本支持。
**参数类型：**USERSET
**取值范围：**整型，0 \~ INT_MAX，单位为毫秒。0表示不检测客户端连接状态。
**默认值：**10000
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
通过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
