软件开发Redis数据库

redis实例中,存在大量的FIN_WAIT2连接

大神们,问个问题, 刚才在redis实例上,通过 netstat 发现, 存在 FIN_WAIT2的连接,将近70个, 请问,这是不是有问题啊?求大神们指点一下, 谢谢。

参与31

2同行回答

WentasyWentasy数据库管理员ChainONE
客户端 TCP 状态迁移:CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED服务器 TCP 状态迁移:CLOSED->LISTEN->SYN 收到 ->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED这个状态存在于主动发起断开请求的一端...显示全部

客户端 TCP 状态迁移:
CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED

服务器 TCP 状态迁移:
CLOSED->LISTEN->SYN 收到 ->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED

这个状态存在于主动发起断开请求的一端,如果服务器存在大量的这个状态,那么这个服务器就充当客户端的角色,如网络爬虫,出现的原因是由于客户端发起 FIN 请求结束连接之后,收到了服务端的应答之后进入 FIN_WAIT2,之后就没收到服务端发送的 FIN 信号导致。

PS:线上 Web 客户端用的什么语言?

收起
互联网服务 · 2017-05-08
浏览6865
AndiAndi软件开发工程师Yucheng tech
回大神, 线上网站后台是用java写的。显示全部

回大神, 线上网站后台是用java写的。

收起
软件开发 · 2017-05-08
浏览7410
  • 这个状态是常驻的吗?一直都是这么多?
    2017-05-08
  • Andi  Andi
    我经常查, 发现, fin_wait2的数量 ,基本上是从1-60个左右, 似乎没有到70,我一直没有找出具体的原因。。 求大神指点!
    2017-05-08
  • Wentasy  Wentasy回复 Andi
    Redis 的 QPS 达到了多少?如果高并发下,有这个状态是正常的,关键是看下这个量的多少。
    2017-05-08
  • Wentasy  Wentasy回复 Andi
    另外,客户端是否用设置了超时?
    2017-05-08
  • Andi  Andi回复 Wentasy
    我刚才查了一下, qps是1597,特别 低, 现在网站用的人不多。
    2017-05-08
  • Andi  Andi回复 Wentasy
    我在redis里面设置的timeout是30秒。 前端现在还不确定。
    2017-05-08
  • Wentasy  Wentasy回复 Andi
    这台机只有这一个 Redis 端口吗?有没有其他端口?有没有其他服务?
    2017-05-08
  • Andi  Andi回复 Wentasy
    是的, 都是用的6379这个端 口, 只跑redis服务 。
    2017-05-08
  • Wentasy  Wentasy回复 Andi
    系统版本是什么?
    2017-05-08
  • Andi  Andi回复 Wentasy
    操作系统 是 Centos 5.8 , 8C, 32G, redis Cluster 3.0
    2017-05-08
  • Wentasy  Wentasy回复 Andi
    单点 6379 用了 Redis Cluster 3.0 的 redis-sever?
    2017-05-08
  • Wentasy  Wentasy回复 Andi
    尝试以下内核参数的优化: net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_max_syn_backlog = 65536 net.ipv4.tcp_max_tw_buckets = 5000
    2017-05-08
  • Andi  Andi回复 Wentasy
    我们的 redis cluster 不是单点, 总共是32个节点,现在存储的数据 ,大概有150G。 fin_timeout我们设置的是60. 其余的参数 , 好像也有设置过。 我明天再改一下看看。
    2017-05-08
  • Andi  Andi
    我一会再确认一下看看, 感谢你,大神!
    2017-05-08
  • Wentasy  Wentasy回复 Andi
    好的,另外建议和开发一起联合测试,看下建立和释放链接这块是否有逻辑 Bug。
    2017-05-08
  • Andi  Andi
    net.ipv4.tcp_max_syn_backlog 这个值 ,我们这边设置的是1024 。。。 是不是太小啦?
    2017-05-08
  • Andi  Andi回复 Wentasy
    明白, 现在应用redis ,主要是用的jedis.
    2017-05-08
  • Wentasy  Wentasy回复 Andi
    这个建议设置大一点。此参数表示 SYN 队列的长度,加大的话可以容纳更多等待连接的网络连接数。
    2017-05-08
  • Andi  Andi回复 Wentasy
    好的, 谢谢, 我今天就把这些都重新设置一下。 感谢指点。
    2017-05-09

提问者

Andi
软件开发工程师Yucheng tech

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-05-08
  • 关注会员:2 人
  • 问题浏览:11251
  • 最近回答:2017-05-08
  • X社区推广