LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] ip_vs_send_async error

To: "'LinuxVirtualServer.org users mailing list.'" <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [lvs-users] ip_vs_send_async error
From: "Aleksey Chudov" <aleksey@xxxxx>
Date: Tue, 15 Dec 2009 02:07:12 +0200
Hello!

I have the following parameters set on LVS Master:
net.core.wmem_max = 16777216
net.core.wmem_default = 118784
net.core.rmem_max = 16777216
net.core.rmem_default = 118784

# netstat -s
Udp:
    12669936 packets received
    398141 packets to unknown port received.
    0 packet receive errors
    47229187 packets sent
    RcvbufErrors: 0
    SndbufErrors: 29490577


How to know correct buffer parameters for 16k conn/ps?
Is it possible to fix connection sync daemon messages without recompiling
the krenel?


Regards, Aleksey



-----Original Message-----

Hi

Aleksey Chudov wrote:
> All test was on the same machine. There is no problems with only few
> connections while testing. Now we have above 8000 conn/ps. But it is only
> half of planned rate. I can see connections from lvs master on lvs backup
so
> connection sync is work. May be not all connections is synchronized, but I
> don't know how to test this.

The kernel only wakes connsync thread up every second to send sync
messages in one batch. When the UDP send buffer cant fit all that data
any more, you will get those errors on sync. To get around it, make
your buffers bigger.

net.core.{w,r}mem_{max,default} are the right sysctls IIRC. Also be
sure to increase the receiver side buffer, otherways you will drop the
packets on the other end and that is more difficult to spot (Udp
InErrors in netstat -s can hint about it, for example).

Alternatively, you may want to build your kernel with the following
patch (sorry about the broken wrapping, starts the sync operation 10
times as often):

--- a/net/ipv4/ipvs/ip_vs_sync.c        2008-02-11 05:51:11.000000000
+0000
+++ b/net/ipv4/ipvs/ip_vs_sync.c        2008-10-06 12:17:07.883882381
+0000
@@ -679,7 +686,7 @@
                if (stop_master_sync)
                        break;

-               msleep_interruptible(1000);
+               msleep_interruptible(100);
        }

_______________________________________________
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



_______________________________________________
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

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