
# 通信库参数
本节介绍通信库相关的参数设置及取值范围等内容。
#### tcp_keepalives_idle
**参数说明：**在支持TCP_KEEPIDLE套接字选项的系统上，设置发送保持活跃信号的间隔秒数。不设置发送保持活跃信号，连接就会处于闲置状态。该参数可在PDB级别设置。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 如果操作系统不支持TCP_KEEPIDLE选项 ，这个参数的值必须为0。
- 在通过Unix域套接字进行的连接的操作系统上，这个参数将被忽略。
- 将该值设置为0时，将使用系统的值。
- 该参数在不同的会话之间不共享，也就是说不同的会话连接可能有不同的值。
- 查看该参数时查出来的是当前会话连接内的参数值，而不是GUC副本的值。
 
**参数类型：**整型
**参数单位：**s（秒）
**取值范围：**0 \~ 3600
**默认值：**60。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，不带单位取值60，表示tcp_keepalives_idle为60s；带单位取值1min，表示tcp_keepalives_idle为1min。取值如果要带单位，必须为s、min、h、d。
**设置建议：**设置时请确认操作系统是否支持TCP_KEEPIDLE套接字选项。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### tcp_keepalives_interval
**参数说明：**在支持TCP_KEEPINTVL套接字选项的操作系统上，设置重新传输之间等待响应的时间。该参数可在PDB级别设置。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 如果操作系统不支持TCP_KEEPINTVL选项，这个参数的值必须为0。
- 在通过UNIX域套接字进行的连接的操作系统上，这个参数将被忽略。
- 将该值设置为0时，将使用系统的值。
- 该参数在不同的会话之间不共享，也就是说不同的会话连接可能有不同的值。
- 查看该参数时查出来的是当前会话连接内的参数值，而不是GUC副本的值。
 
**参数类型：**整型
**参数单位：**s（秒）
**取值范围：**0 \~ 180
**默认值：**30。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，不带单位取值60，表示tcp_keepalives_interval为60s；带单位取值1min，表示tcp_keepalives_interval为1min。取值如果要带单位，必须为s、min、h、d。
**设置建议：**设置时请确认操作系统是否支持TCP_KEEPINTVL套接字选项。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### tcp_keepalives_count
**参数说明：**在支持TCP_KEEPCNT套接字选项的操作系统上，设置GaussDB服务端在断开与客户端连接之前可以等待的保持活跃信号个数。该参数可在PDB级别设置。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 如果操作系统不支持TCP_KEEPCNT选项，这个参数的值必须为0。
- 在通过UNIX域套接字进行连接的操作系统上，这个参数将被忽略。
- 将该值设置为0时，将使用系统的值。
- 该参数在不同的会话之间不共享，也就是说不同的会话连接可能有不同的值。
- 查看该参数时查出来的是当前会话连接内的参数值，而不是GUC副本的值。
 
**参数类型：**整型
**参数单位：**无
**取值范围：**0 \~ 100，其中0表示GaussDB未收到客户端反馈的保持活跃信号则立即断开连接。
**默认值：**20。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**设置时请确认操作系统是否支持TCP_KEEPCNT套接字选项。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### tcp_user_timeout
**参数说明：**在支持TCP_USER_TIMEOUT套接字选项的操作系统上，设置GaussDB在发送数据时，指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的最大时长。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 如果操作系统不支持TCP_USER_TIMEOUT选项，这个参数的值将不生效，默认为0。
- 在通过UNIX域套接字进行连接的操作系统上，这个参数将被忽略。
 
**参数类型：**整型
**参数单位：**ms（毫秒）
**取值范围：**0 \~ 3600000
**默认值：**0，表示跟随操作系统设置。
注意，不同操作系统内核下，这个参数生效结果将不同：
- aarch64 EulerOS（Linux内核版本：4.19），超时时间即为该参数设置值。
- x86 Euler2.5（Linux内核版本：3.10），超时时间不是该参数设置值，而是不同区间的最大值，即超时时间取值为：tcp_user_timeout设置值所处"Linux TCP重传总耗时"区间的上限最大值。例如：tcp_user_timeout=40000时，重传总耗时为51秒。
  表1x86 Euler2.5（Linux内核版本：3.10）tcp_user_timeout参数取值示意 
  | Linux TCP重传次数 | Linux TCP重传总耗时区间（秒） | tcp_user_timeout设置举例（毫秒） | 实际Linux TCP重传总耗时（秒） |
  |:---|:---|:---|:---|
  | 1             | (0.2,0.6\]          | 400                      | 0.6                 |
  | 2             | (0.6,1.4\]          | 1000                     | 1.4                 |
  | 3             | (1.4,3\]            | 2000                     | 3                   |
  | 4             | (3,6.2\]            | 4000                     | 6.2                 |
  | 5             | (6.2,12.6\]         | 10000                    | 12.6                |
  | 6             | (12.6,25.4\]        | 20000                    | 25.4                |
  | 7             | (25.4,51\]          | 40000                    | 51                  |
  | 8             | (51,102.2\]         | 80000                    | 102.2               |
  | 9             | (102.2,204.6\]      | 150000                   | 204.6               |
  | 10            | (204.6,324.6\]      | 260000                   | 324.6               |
  | 11            | (324.6,444.6\]      | 400000                   | 444.6               |
     
  注：TCP每次重传耗时随重传次数指数增加，当TCP一次重传到达120秒后，后续每次重传都将耗时120秒不再变化。
  
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**设置时请确认操作系统是否支持TCP_USER_TIMEOUT套接字选项。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
#### comm_proxy_attr
**参数说明：**通信代理库相关参数配置。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 该参数仅支持欧拉2.9系统下的集中式ARM单机。
- 本功能在线程池开启（GUC参数[enable_thread_pool](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0389.html#ZH-CN_TOPIC_0000002559108691__zh-cn_topic_0000002526897674_zh-cn_topic_0000002372332445_zh-cn_topic_0283137548_zh-cn_topic_0237124743_section97160555612)取值为on）状态下生效。
- 配置该参数时需同步配置GUC参数[local_bind_address](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0320.html#ZH-CN_TOPIC_0000002558948751__zh-cn_topic_0000002558058135_zh-cn_topic_0000002338534280_zh-cn_topic_0283136886_zh-cn_topic_0237124695_zh-cn_topic_0059777636_s5339247211624017a06e634c85c519d5)为libos_kni的网卡IP。
- 参数模板：comm_proxy_attr = '{enable_libnet:true, enable_dfx:false, numa_num:4, numa_bind:\[\[30,31\],\[62,63\],\[94,95\],\[126,127\]\]}'
- 可配置参数说明。
  - enable_libnet：是否开启用户态协议，取值范围：true、false。
  
  - enable_dfx：是否开启通信代理库视图，取值范围：true、false。
  
  - numa_num：机器环境中numa的数量，支持2P、4P服务器，取值范围：4、8。
  
  - numa_bind：代理线程绑核参数，每个numa两个CPU绑核，共numa_num组，取值范围：\[0，cpu数-1\]。
   
 
**参数类型** **：**字符串
**参数单位：**无
**取值范围** **：**长度大于0的字符串。
**默认值：**"none"
**设置方式：** 该参数属于POSTMASTER类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：** comm_proxy配置为非"none"值时，需要根据参数说明合理配置，否则无法正常使用该功能**。**
 #### umdk_enabled
**参数说明：**控制当前数据库主备DN是否开启UMDK功能。若DN主备间通信使用UMDK通信协议，则DN上相关日志关键字为"umdk"，若DN主备间通信使用TCP协议，则记录log日志。目前仅部分场景支持该功能。
**参数类型：**布尔型
**参数单位：**无
**取值范围：**
- on：开启UMDK功能，若当前数据库实例不支持UMDK网络通信协议，则DN主备间通信走TCP协议；若当前数据库实例支持UMDK网络通信协议，DN主备间通信走UMDK协议。
- off：不开启UMDK功能，DN主备间通信走TCP协议。
**默认值：**off
**设置方式：** 该参数属于POSTMASTER类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。可以根据参数使用说明的具体使用场景进行设置。
**设置不当的风险与影响：**请在充分理解参数含义，并经过测试验证后进行修改。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- GaussDB数据库适配UMDK通信协议栈，UMDK能力由操作系统提供和维护。
- GaussDB数据库侧默认关闭该参数。参数打开后，GaussDB数据库能否支持该能力取决于操作系统是否提供且支持UMDK功能。
- UMDK能力依赖硬件网卡和软件OS配置，例如：硬件网卡：1823V200网卡，OS：HCE2.0。
- 检测环境是否具备UMDK能力：root用户执行lsmod \| grep ums语句查看操作系统是否加载了UMS模块。 若通过执行语句发现当前环境不支持UMDK（UMS模块）或者UMS模块故障，若开启umdk_enabled会导致主备建连失败。需要保证环境具备UMDK能力后再开启umdk_enabled。
  
 
#### umdk_port
**参数说明：**当DN主备间通信使用UMDK协议时，主备DN网络通信链路的侦听端口。
**参数类型：**整型
**参数单位：**无
**取值范围：**1 \~ 65535
**默认值：** dataPortBase+15，dataPortBase的值为数据库初次安装时GUC参数[port](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0320.html#ZH-CN_TOPIC_0000002558948751__zh-cn_topic_0000002558058135_zh-cn_topic_0000002338534280_zh-cn_topic_0283136886_zh-cn_topic_0237124695_zh-cn_topic_0059777636_se9188f6aa8c9487c84d6d540eb470b3f)的取值。
**设置方式：** 该参数属于POSTMASTER类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值，不建议用户配置。
**设置不当的风险与影响：**配置不当可能会导致端口冲突，影响数据库正常启动。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- GaussDB数据库适配UMDK通信协议栈，UMDK能力由操作系统提供和维护。
- GaussDB数据库侧默认不会侦听umdk_port，需要在打开GUC参数[umdk_enabled]，且当前环境硬件和软件支持UMDK协议时，数据库UMDK协议的功能才会开启，相关端口才会被侦听，DN主备开始执行UMS网络协议（UMS为UMDK的网络协议族）。
 
