On 06/07/2010 06:50 PM, Simon Horman wrote:
> On Mon, Jun 07, 2010 at 01:43:06PM -0500, Terry Inzauro wrote:
>> List,
>>
>> When a real server is removed either manually or due to an unplanned fault,
>> I am finding that it takes quite some time(if
>> ever, i stopped waiting) for existing/new connections to be failed over to
>> the other real servers in the pool.
>>
>> Is this due to tcp time out?
>> Is it my persistent value too high?
>> Or something else?
>
> Hi Terry,
>
> Briefly, the problem is likely to be an interaction between
> quiescent and persistent.
>
> First, its important to understand that existing connections won't be
> failed-over. If you set quiescent=no they will be broken. If you set
> quiescent=yes they will be allowed to run their course.
>
> With regards to new connections. If quiescent=no or persistent=0
> then new connections will be scheduled to a different server.
> If quiescent=yes and persistent is non-zero then there are
> two behaviours available that are controlled by a proc value.
>
> 1. If proc/sys/net/ipv4/vs/expire_quiescent_template is 0
> (which is the default) then new connections will
> be scheduled to the original (offline) real-server
> as per the usual rules of persistence (in your case,
> if any other connection has been used within 600s).
>
> This is mainly for historical reasons and usually is not
> what is desired.
>
> 2. If proc/sys/net/ipv4/vs/expire_quiescent_template is non-zero
> then new connections will be scheduled to a new real-server.
>
> This seems to be what you want.
>
> The behaviour or expire_quiescent_template is explained in
> Documentation/networking/ipvs-sysctl.txt in the kernel source,
> which Google found here
> http://www.mjmwired.net/kernel/Documentation/networking/ipvs-sysctl.txt
>
> Another recent explanation of this that I wrote is here
> http://www.gossamer-threads.com/lists/lvs/users/23247#23247
>
> As this problem keeps coming up, I wonder if it would make
> sense for ldirectord to control this setting. Perhaps adding
> a (global) expire_quiescent_template=yes|no option to ldirectord.cf
> and defaulting to yes?
Thank you for the explanation. I sometimes forget about those docs in the
kernel source. Sounds like
expire_quiescent_template = 1 is exactly what I need.
FWIW:
A variable in ldirectord.cf would be nice, but really, a section explaining the
various /proc values in the man page would
probably better help the masses.
kind regards,
Terry
_______________________________________________
Please read the documentation before posting - it's available at:
http://www.linuxvirtualserver.org/
LinuxVirtualServer.org mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Send requests to lvs-users-request@xxxxxxxxxxxxxxxxxxxxxx
or go to http://lists.graemef.net/mailman/listinfo/lvs-users
|