LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: Fundamental performance limits of a linux based load balancer / serv

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: Fundamental performance limits of a linux based load balancer / server system?
From: "Edward Chee" <edward_chee@xxxxxxxxx>
Date: Tue, 11 May 2004 11:46:26 -0700
> > (1) Load balancer bottlenecks
> >
> > (a) max open connections is limited to the number of available ports
(65535-1024 divided by TIME_WAIT). For systems with TIME_WAIT set to
recommended 4 minutes, this limits max open connections to measly 268.
> > See http://support.zeus.com/doc/zlb/sizing_guide.pdf
>
> Unless I'm mistaken, there's no "open" connection, just tracked
> connections. The clients are not "connected" to the load balancer.
>
> And BTW, your computation is only valid for a client, not a server.
> Assuming a client always uses a different port for an outgoing
> connection, it can roughly initiate 65K connections.
>
> On the server side, there's no port limit for a daemon listening on a
> single port: it uses just one ! The port used by a client is bound to
> the client machine, not the server. Several clients can have the same
> source port.
>
> If there was no file descriptor limit nor memory constraint, a server
> could handle way more than the current "port limit" (65K) simultaneous
> connections.

But doesn't a load balancer act as both server and client? It seems to me
that a load balancer would have to act as a TCP client when it forwards
packets to the actual web servers - ie open outgoing connections - and thus
won't it be subject to the port limits?

> > (2) Server bottlenecks
> > (a) Linux max open connections due to available ports or file
descriptors on the web server.
> Right for file descriptors, wrong for open connections.

For a webserver I guess there's no port limit, since there's no need to open
outbound client connections.
thanks
ed

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