On Sun, Feb 06, 2011 at 06:42:36AM +0900, Simon Horman wrote: > 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.
FYI, the original discussion that resulted in the patch below is at http://archive.linuxvirtualserver.org/html/lvs-users/2010-02/msg00022.html > 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