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 - [email protected] Send requests to [email protected] or go to http://lists.graemef.net/mailman/listinfo/lvs-users
