ITPub博客

首页 > 数据库 > NoSQL > 程序连接haproxy线程一直close_wait问题

程序连接haproxy线程一直close_wait问题

原创 NoSQL 作者:hotdog04 时间:2015-07-27 23:31:25 2 删除 编辑
     今天一个rd反映连接haproxy集群报错,查看应用服务器进程大量的端口连接处于colse_wait状态。
这个haproxy的redis集群类似配置已经好几组了,配置都相同问啥别的都好好的这个却有问题。
     自己尝试使用redis-cli连接(haproxy做的redis分片集群),确实能够正常连接操作,但是连接状态马上就会变成
close_wait状态,重新执行命令这个close_wait状态会恢复ESTABLISHED,但是细心看端口号已经变化,也就是redis-cli
发生了重新连接。
于是问题清晰了:用户客户端工具建立链接后,没有自动重连来保持连接,导致超时,服务器主动断开连接,客户端再次
链接的时候socket已经损坏不可用了,导致报错
解决办法:调整haproxy的超时参数:
timeout connect 5s
timeout queue   5s
timeout client 30s
timeout server 30s
timeout client-fin 30s
timeout server-fin 30s
timeout tunnel  1h

参数解释:
timeout connect      连接尝试成功连接到server的超时时间
timeout queue        在队列等待连接槽释放的超时时间
timeout server       server端非活动状态超时时间
timeout client       客户端非活动状态超时时间
timeout server-fin   半关闭状态连接,server端非活动超时时间
timeout client-fin   半关闭状态连接,client端非活动超时时间
timeout tunnel       客户端和服务器端通道非活动超时时间

再次测试close_wait消失了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20625855/viewspace-1753659/,如需转载,请注明出处,否则将追究法律责任。

上一篇: leveldb初识
请登录后发表评论 登录
全部评论

注册时间:2013-03-11

  • 博文量
    59
  • 访问量
    404564