keepalived+LVS超时设置产生的realserver的tcp连接不释放问题
来源:互联网 发布:数控编程工资一般多少 编辑:程序博客网 时间:2024/06/11 09:34
redis的集群使用keepalived+LVS做的负载集群
persistent时间设置为30s
而ipvsadm的超时时间则为900 120 300【使用ipvsadm -l --timeout】第一个为tcp超时时间,第二个为tcpfin超时时间,第三个为udp超时时间
由于在这种设置下ActionConn的连接数在高频访问下总是不会释放,恒定在100,【5个客户端恒定TCP连接每台10个】
决定设短ipvsadm的tcp超时时间为5s,而tcpfin设置为120,udp为300
结果就悲催了
keepalived的ActionConn和InActConn的数量猛增猛降也还可以接受
realserver的tcp连接则出现了端口上连接堆积不释放的情况,从1000多梦飙升到8000多
客户端狂报远程连接中断的错误
仔细研读了LVS的原理和TCP有限状态机
发现了问题所在
tcp的连接超时时间严重小于tcpfin的时间,结果lvs就会每隔5s在即使tcp连接还健康存在的时候强制中断
由于客户端会恒定保持10个TCP连接,然后就不断的被中断,不断的重新建立
realserver因为tcp连接是被强制中断的,有可能还没有收到lvs转发的tcp操作完成信号,就会在端口上继续保持连接 ESTABLISHED
然后就悲催了
一个明显的失误就是tcp的连接超时时间远小于tcp完成超时时间,真是的~~~
- keepalived+LVS超时设置产生的realserver的tcp连接不释放问题
- keepalived+lvs+realserver+conf
- lvs & keepalived的tcp 长连接的问题解决办法
- 凌晨lvs连接不上realserver 异常分析
- lvs的realserver健康检查脚本
- lvs+keepalived 负载均衡realserver.sh脚本
- TCP连接的释放
- LVS + keepalived的
- keepalived+lvs的配置
- LVS之五:使用脚本实现RealServer的健康检查
- TCP超时连接设置
- TCP的连接和释放
- TCP的连接和释放
- TCP的连接和释放
- 解决LVS连接分布不匀的问题
- keepalived+lvs实现lvs的高可用
- keepalived+lvs集群的搭建
- mysql的连接超时设置
- 第十二周项目 银行系统
- 利用handler.post()更新UI
- POJ1260 Pearls
- 第十二周项目1-求某年某月是本年的第几天
- Mac上配置Android开发环境并把Cocos2d-x项目编译到Android
- keepalived+LVS超时设置产生的realserver的tcp连接不释放问题
- MFC文件的读写
- Android MediaPlayer与Http Proxy结合之优化篇
- SQL_NOT IN
- 使用IzPack打包JAVA Web应用程序
- 几个有意思的算法题目
- 深度学习简介
- ubuntu下安装RabbitVCS
- 任务栏右键菜单关闭程序发送的消息