• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

LVS DR模式修改FIN_WAIT超时时间 和简单优化

问题:
1.ipvsadm -L –timeout
Timeout (tcp tcpfin udp): 900 120 300
请问这里三个TIME_OUT说的是毫秒吗?

2.用ipvsadm -Lcn看,99%的状态都是FIN_WAIT,
而ESTABLISH的只有几十个,是不是可以考虑减小FIN_WAIT的时间?

它们是以秒为单位的。
缺省的FIN_WAIT超时是120秒。如果你的服务都是非常短的连接,可以考虑减少FIN_WAIT的超时时间,例如60秒或者30秒。

# ipvsadm -Lcn |awk '{print $3}'|sort  |uniq -c |sort -rn
    548 FIN_WAIT
    456 NONE
     80 ESTABLISHED
      9 SYN_RECV
      2 CLOSE
      1 state
      1 entries
TCP状态为NONE的是持久性模板,它是记录来自同一IP地址的访问调度到同一服务器。
TCP状态为CLOSE的是已关闭连接。
# ipvsadm -L –timeout
Timeout (tcp tcpfin udp): 900 120 300
默认FIN_WAIT是120秒
修改成60
# ipvsadm –set 900 60 300
# ipvsadm -Lcn |awk '{print $3}'|sort  |uniq -c |sort -rn
    327 NONE
    279 FIN_WAIT
     62 ESTABLISHED
      4 SYN_RECV
      1 state
      1 entries

如果是用长连接的话:
lvs的设置:
# ipvsadm –list –timeout
Timeout (tcp tcpfin udp): 7200 5 60
表明tcp session的timeout时间是7200秒。

设置timeout:
ipvsadm –set 7200 5 60
这个值如果设置太小,client将会收到 connection reset by peer此类的错误提示。

优化:
Improving TCP/IP performance
net.ipv4.tcp_tw_recyle=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_max_syn_backlog=8192
net.ipv4.tcp_keepalive_time=1800
net.ipv4.tcp_fin_timeout=30
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
net.core.netdev_max_backlog=3000

刷新MAC地址:
/sbin/arping -f -q -c 5 -w 5 -I eth0 -s $WEB_VIP -U $GW
keealived方案切换的时候会内置自动发送send_arp命令

LVS DR模式修改FIN_WAIT超时时间 和简单优化

Pingbacks已打开。

引用地址

暂无评论

发表评论