LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: load balancing trouble at a high load

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: load balancing trouble at a high load
Cc: Roberto Nibali <ratz@xxxxxxxxxxxx>
From: Horms <horms@xxxxxxxxxxxx>
Date: Mon, 3 Jul 2006 19:25:15 +0900 (JST)
In article <004001c69ddf$6c357b70$0200a8c0@PCGTR1B> you wrote:
> Hello,
> 
> I almost found out the reason of the limit (about 28230) 
> of ActConn + InActConn.
> The default of /proc/sys/net/ipv4/ip_local_port_range is "32768 61000".
> In short, 61000 - 32768 = 28232.
> The number of  client of our test environment is one.

As Ratz mention, this value does not affect LVS directly. However,
it might affect your clients. In particular if you only have one,
it may only be able to generate 61000 - 32768 connections.

> 
> The hash key of ip_vs_conn_tab (connection table) is based on
> protocol, s_addr(caddr), s_port(cport), d_addr(vaddr), and d_port(vport).
> So I think that the max limit of hash key produced by hash function
> is 28232(default) for one client to same virtual server. 
> Therefore,  I think the limit of ActConn + InActConn for every client 
> at a high load exists and the number of hash key for ip_vs_conn_tab
> from same client to same virtual server (to a realserver) is full.

Please remember that the hash key is just that, and that the hash
buckets can have multiple entries. Certainly if s_addr, d_addr and
d_port are constant, which I believe they are in your test, then the
number of keys will be bound by s_port (which is probably bound by the
limit discussed above). However for a more usual case, s_addr at least
varies and this gives a much larger bound of unique hash keys.

That said, the real bound on the hash keys is likely to be
CONFIG_IP_VS_TAB_BITS, which by default is 12, giving 2^12 = 2048
hash keys. But again, the buckets can have multiple entries.

> So I think that strange behavior at a high load was occured by
> the above reason.
> In short, the cause of the load balancing trouble at a high load is mainly
> related to ip_vs_conn table managed by hash key based on the above elements
> and the limit of port range of a client 
> 
> But I think that this specification of ip_vs is no problem in real 
> environment. 

I suspect you have found a limitation in the number of requests
that a single client can generate, or more to the point the
number of requests from a single source IP address. Could you try
with a few more clients and/or source IP addresses?

-- 
Horms                                           
H: http://www.vergenet.net/~horms/          W: http://www.valinux.co.jp/en/


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