On Fri, Feb 04, 2011 at 06:20:24PM -0800, Kon Wilms wrote: > All, > > I'm running a custom TCP service on port 80 which fields byterange > requests to clients. When running LVS-DR with WLC scheduling, an > ipvsadm -L -n displays seemingly incorrect ActiveConn counts. When > loading the server with 500 clients I will only see a dozen at best > ActiveConn entries. This leads me to believe that WLC may not be > working correctly, or may be scheduling clients incorrectly. > > Config excerpts: > > ldirectord.cf: > quiescent=yes > virtual=x.x.x.1:80 > real=x.x.x.2:80 gate > real=x.x.x.3:80 gate > fallback=127.0.0.1:80 gate > scheduler=wlc > persistent=600 > netmask=255.255.255.255 > protocol=tcp > checktype=ping > failurecount=3 > > Testing using RR scheduling works as advertised and I can confirm that > the DR is indeed working from parsing the server logs being generated > for connection requests. > > Perhaps it is a misunderstanding of the connection state related to > ActiveConn on my part, or something else. Any pointers are > appreciated.
Hi Kon, I believe that you are coming up against a bug in ipvsadm 1.25. There are several options available to resolve this: 1) Obtain the latest sources from svn # svn checkout http://svn.linuxvirtualserver.org/repos/ipvsadm/trunk 2) Obtain the first revision to include the fix for this problem from svn: # svn checkout http://svn.linuxvirtualserver.org/repos/ipvsadm/trunk@64 3) Apply the patch below 4) Compile ipvsadm without netlink support - Most easily achieved by compiling without libnl installe - This also disables IPv6 support >From 34c033ca687705068542dbc8f202a170706dc228 Mon Sep 17 00:00:00 2001 From: wensong <wensong@36f5d8da-7431-0410-8ca5-ec586ed2521a> Date: Wed, 21 Jul 2010 23:50:58 +0000 Subject: [PATCH] This fixes what appears to be a typo in the netlink client code whereby the activeconns is read as activeconns and then overwritten by persistentconns. The result is that the active connection count reported by ipvsadm -L is wrong if the code is compiled to use the netlink interface. Tested-by: Nigel Kukard <nkuk...@lbsd.net> Signed-off-by: Simon Horman <ho...@verge.net.au> Signed-off-by: Wensong Zhang <wens...@linux-vs.org> git-svn-id: http://svn.linuxvirtualserver.org/repos/ipvsadm/trunk@64 36f5d8da-7431-0410-8ca5-ec586ed2521a --- libipvs/libipvs.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/libipvs/libipvs.c b/libipvs/libipvs.c index 9a42712..979d5bd 100644 --- a/libipvs/libipvs.c +++ b/libipvs/libipvs.c @@ -748,7 +748,7 @@ static int ipvs_dests_parse_cb(struct nl_msg *msg, void *arg) d->entrytable[i].l_threshold = nla_get_u32(dest_attrs[IPVS_DEST_ATTR_L_THRESH]); d->entrytable[i].activeconns = nla_get_u32(dest_attrs[IPVS_DEST_ATTR_ACTIVE_CONNS]); d->entrytable[i].inactconns = nla_get_u32(dest_attrs[IPVS_DEST_ATTR_INACT_CONNS]); - d->entrytable[i].activeconns = nla_get_u32(dest_attrs[IPVS_DEST_ATTR_PERSIST_CONNS]); + d->entrytable[i].persistconns = nla_get_u32(dest_attrs[IPVS_DEST_ATTR_PERSIST_CONNS]); d->entrytable[i].af = d->af; if (ipvs_parse_stats(&(d->entrytable[i].stats), -- 1.7.2.3 _______________________________________________ Please read the documentation before posting - it's available at: http://www.linuxvirtualserver.org/ LinuxVirtualServer.org mailing list - lvs-users@LinuxVirtualServer.org Send requests to lvs-users-requ...@linuxvirtualserver.org or go to http://lists.graemef.net/mailman/listinfo/lvs-users