ipvsadm --persistent 与 --set

[复制链接]
admin 发表于 2019-3-7 14:37:55 | 显示全部楼层 |阅读模式
最近受困于ipvsadm的两个参数,经过一些实验观察他们的区别(未查看ipvs源码)。
首先show一下ipvsadm -h对这两个参数的注释
--persistent -p [timeout] persistent service //持久服务
--set tcp tcpfin udp set connection timeout values //链接的超时时间

1. --persistent -p [timeout]
持久服务超时时间设置参数,真对一些需要保持状态的应用,例如一些http应用、ftp、ssl等。 在参数的时间范围内同一用户(client IP)的多次访问会被ipvs分配到同一台realserver上。

2. --set tcp tcpfin udp
真对链接的超时时间。以tcp为例,一个tcp连接建立后会传输N个报文, 当两个报文相继到达的时间差在超时时间内就会被转发到同一台realserver上进行处理, 若时间差大于超时时间就会根据调度算法重新选择realserver,连接就有可能出现异常。 ipvs是根据client IP 和 client port来识别是不是同一个链接发的报文。

3. 两者的区别与联系
区别:
persistent 是提供对有持久服务需要的支撑, 是在超时时间内将同一个client IP的链接分发到同一个realserver上,比较宏观一些;
set 是针对一次链接两个相继到达报文的超时时间定义, 这个值在单一一次链接内有效,比较微观一些。
联系:
persistent值大于等于set时,持久服务分发超时以persistent的设置为准。
persistent值小于set时,持久服务分发超时会以(s/60)*60 + p%60 + 60为准(当persistent值超时后, 会将persistent自动赋值为60,超时后继续将persistent自动赋值为60....直到set超时persistent再次超时未知)。
【智云杂货铺 bbs.0936sht.com】
回复 论坛版权

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则