请选择 进入手机版 | 继续访问电脑版

Redis中国用户组(CRUG)论坛

 找回密码
 立即注册

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 189|回复: 3

sentinel 连接被防火墙中断,不能正常回收,请问是啥问题

[复制链接]

该用户从未签到

1

主题

2

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2017-8-10 19:50:26 | 显示全部楼层 |阅读模式
问题现象:sentinel 连接被防火墙中断,不能正常回收
1.redis-cli 3.0.7
2.config get *keep*
1) "tcp-keepalive"
2) "60"
config get *timeout*
1) "timeout"
2) "600"

os keepalive 参数
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9

看到很多帖子说:
通过阅读redis源代码(net.c),发现,sentinel也采用了redis 所有参数设置(通过config.c的函数void loadServerConfigFromString(char *config))。因此,通过设置redis 的下列两个参数可以解决这个问题,第一个参数是TCP Keepalive参数

但是发现sentinel根本就没有应用redis或者os的keepalive的机制,导致防火墙中断的连接不能正常回收,而client的连接能正常应用os的keepalive机制回收,最终sentinel的连接越来越大,请问如何解决

该用户从未签到

6

主题

12

帖子

72

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
72

论坛元老

发表于 2017-8-17 10:13:35 | 显示全部楼层
关闭防火墙或者做端口白名单

该用户从未签到

1

主题

2

帖子

24

积分

新手上路

Rank: 1

积分
24
 楼主| 发表于 2017-8-10 19:54:08 | 显示全部楼层
本帖最后由 ceshi123456 于 2017-8-10 19:55 编辑

tcpdump -pni eth0 -v "src port 32000 and host 10.10.10.159  and ( tcp[tcpflags] & tcp-ack != 0 and ( (ip[2:2] - ((ip[0]&0xf)<<2) ) - ((tcp[12]&0xf0)>>2) ) == 0 ) "
通过该命令发现根本就没有keep alive包进行探活
请问有啥方法能获取keep-alive timer,AIX系统有kdb,linux系统呢?

该用户从未签到

0

主题

1

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2017-8-28 10:27:38 | 显示全部楼层
恩 ,感谢!后来把防火墙超时时间设置一天(估计没有生效),最后把client的tcp_keepalive_time改成小于防火墙超时时间。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

阿里云
阿里云

Archiver|手机版|小黑屋|Redis中国用户组 ( 京ICP备15003959号

GMT+8, 2017-12-13 17:10 , Processed in 0.218471 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表