云数据库 GAUSSDB-通信库参数:tcp_user_timeout
tcp_user_timeout
参数说明:在支持TCP_USER_TIMEOUT套接字选项的操作系统上,设置 GaussDB 在发送数据时,指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的最大时长。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
- 如果操作系统不支持TCP_USER_TIMEOUT选项,这个参数的值将不生效,默认为0。
- 在通过Unix域套接字进行连接的操作系统上,这个参数将被忽略。
取值范围:0-3600000,单位为ms。其中0表示跟随操作系统设置。
默认值:0
不同操作系统内核下,该参数生效结果不同:
- aarch64 EulerOS(Linux内核版本:4.19):超时时间即为该参数设置值。
- x86 Euler2.5(Linux内核版本:3.10):超时时间不是该参数设置值,而是不同区间的最大值。即超时时间取值为:tcp_user_timeout设置值所处“Linux TCP重传总耗时”区间的上限最大值。例如:tcp_user_timeout=40000时,重传总耗时为51秒。
表1 x86 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秒不再变化。