LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: How to flush UDP connections

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: How to flush UDP connections
From: Horms <horms@xxxxxxxxxxxx>
Date: Thu, 27 Oct 2005 16:54:52 +0900
On Fri, Oct 21, 2005 at 05:10:47PM -0400, Ashish Jain wrote:

> 1. The load balancer works fine the way I expected for one one thing:
> 
> Sometimes after heavy load surge (500 UDP packets per sec. on the same 
> connection) , the output of ipvsadm -l -c shows active UDP connections 
> even if there is no traffic and I stop sending any UDP packets.
> 
> In ipvsadm, the default UDP connection timout is set to 300 sec (I did 
> not change that. I did not even use persistant flag). I expect these 
> connections to go away after 300 seconds. But after the 300 sec timer 
> expires, it gets reset to 60 sec and these active UDP connectiosn stay 
> forever. What could be the reason?
> 
> I have noticed from the ip_vs code (ip_vs_conn.c) that there are 2 
> functions implemented to expire a connection:
> ip_vs_conn_expire (This one resets the timer to 60*Hz if the reference 
> count for this connection is greater than 1 or these is error deleting 
> connection from hash tab)
> ip_vs_conn_expire_now (Deletes the connection immediately)
> 
> The function called after timer expires is ip_vs_conn_expire and not the 
> second one. Why is this so?

This is a bug, I believe it was fixed in 2.6.13.4

> 2. There is no option in ipvsadm to flush these connections as well. how 
> can I flush these connections?
> 
> There is already a function implemented in ip_vs code to flush all 
> connections but there is no socket option provided there do the same. 
> The only socket option to flush is to flush the rules and not the 
> connections. Why is it so?

To be honest, the connections shouldn't be there in the first place,
and they are only there because its a bug.

I'm not sure what flush funtionality you are refering to that is there
for sockets, there may be room for a new feature, and you are certainly
welcome to cook up a patch. But, again, your troubles are caused by a
a bug.

> 3. I tried to enable the debug flag for ipvs in sysctl but doesn't seem 
> like ipvs was build with debug flags on. How can I turn on debugging for 
> ip_vs?

You need to enable IP_VS_DEBUG at compile time, and then
fiddle the debug proc value in /proc/sys/net/ipv4/vs at run time.

-- 
Horms

<Prev in Thread] Current Thread [Next in Thread>