[lvs-users] extremely slow (10kb/s) LVS NAT on new RHEL 6 load balancer

Alois Treindl alois at astro.ch
Sat Nov 26 18:42:42 GMT 2011


I used tcpdump to look at the network traffic, looking at both 
interfaces of the LVS by running two tcdump processes.

The httpd real server introduces 200 millisecond delays between packets 
when sending.

When I reconfigure the network so that I can connect directly without 
LVS to the real server, there are no such delays in the traffic.

I (believe to) see the ACK packages from the http client in both cases, 
they do not seem to get lost.

Who/what introduces the delay into this tcp socket, should it not be 
turned off (via TCP_NODELAY)?

How can I look at the properties of he tcp sockets involved in the 
connection?

Any help welcome, I need to get this fixed over the weekend!


On 26.11.11 15:46, Alois Treindl wrote:
> I am setting up a new LVS NAT load balancer, running on Redhat
> Enterprise Linux 6.
>
> I have been runnign LVS NAT on RHEL for many years, our current load
> balancer is on RHEL3, which isno longer supported by Redhat.
>
> I have a very strnge problem: performance of http through the LVS is
> extremely slow at something like 10 kbyte/sec, ridiculous.
>
> I have made two approaches for the setup, but arrive at the same problem.
>
> kernel:  2.6.32-131.17.1.el6.x86_64
> ipvsadm-1.25-9.el6.x86_64  from Centos 6 (becaus my subscription for
> RHEL6 does not include the load balancing)
>
> Approach a)
> I used my own old scripts based on ldirectord, ipvsadm and iptables
> to configure and administer my setup as I did on my old LVS.
> It worked, but as I said, extremely slow. 10 kByte/second !!!!
>
> For the moment, I only set up http
>
> Approach b)
> I installed piranha-gui  (piranha-0.8.5-7.el6.x86_64, also from centos6)
> and configured the NAT lvs with it.
>
> The simple setup looks like this:
> TCP  (my virtual ip):http wlc persistent 60
>     ->  w2:http                      Masq    1000   0          0
>     ->  w3:http                      Masq    1000   0          0
>     ->  w4:http                      Masq    1000   0          0
>
> Routing in the NAT LVS is:
> Kernel IP routing table
> Destination  Gateway    Genmask         Flags Metric Ref    Use Iface
> 192.53.104.0 0.0.0.0    255.255.255.128 U     0      0        0 eth1
> 10.1.1.0     0.0.0.0    255.255.255.0   U     0      0        0 eth0
> 0.0.0.0  192.53.104.62   0.0.0.0         UG    0      0        0 eth1
>
> routing in a real server is:
> Destination  Gateway   Genmask         Flags Metric Ref    Use Iface
> 10.1.1.0     0.0.0.0         255.255.255.0   U     0      0        0 em1
> 0.0.0.0      10.1.1.254      0.0.0.0         UG    0      0        0 em1
>
> currently empty iptables:
> iptables -L
> Chain INPUT (policy ACCEPT)
> target     prot opt source               destination
> Chain FORWARD (policy ACCEPT)
> target     prot opt source               destination
> Chain OUTPUT (policy ACCEPT)
> target     prot opt source               destination
>
> ip6tables dito
>
> Is something broken in RHEL6 regarding LVS NAT use?
> Or am I doing something stupid without noticing?
>
> I need to get this thing running over the weekend, but am running
> against a wall!
>
>
> _______________________________________________
> Please read the documentation before posting - it's available at:
> http://www.linuxvirtualserver.org/
>
> LinuxVirtualServer.org mailing list - lvs-users at LinuxVirtualServer.org
> Send requests to lvs-users-request at LinuxVirtualServer.org
> or go to http://lists.graemef.net/mailman/listinfo/lvs-users




More information about the lvs-users mailing list