4

I am trying to understand if the number of concurrent tcp-connections on a load balancer is a limiting factor for a "normal" web site, rather than the data throughput.

When I look at data sheets for load balancers I do not find information on how many connections they can handle. Does that mean the number of connections is not a limiting factor, or does it mean it is too hard to tell because other factors, in combination with the number of connections, are more important?

In the end I am trying to figure out when our load balancer will crack due to too many web site visitors. It is a virtual lb, a Barracuda BBF 340 Vx, with 2 GB Ram and 2 CPUs.

Sten
  • 179
  • 1
  • 6

2 Answers2

4

The number of concurrent TCP connections a device supports is always a limiting factor - Every OS has an internal table which tracks the state of TCP connections, and that table has a limited number of possible entries.

In the typical case the number of TCP connections is not THE limiting factor: that limit is so high that you'll hit other limitations of your environment before you hit that one. For example, if your load balancer is handling SSL encryption for your environment you'll probably hit a CPU/RAM limitation from that before you hit the TCP connections limit.


Getting this number from a vendor is of dubious utility -- vendors lie. They will typically present the theoretical best-case maximum number (which is often impossible to achieve in any kind of real production environment).
You can get third-party figures from a review site, but really the only way to know your environment's limits is to perform a load test on your environment. Assuming you can generate enough work you will cause your environment to fail, and you'll be able to tell why. (You can then decide if the performance/limits are acceptable -- If they're not you can work on improving your environment to handle the anticipated load.)

voretaq7
  • 79,879
  • 17
  • 130
  • 214
1

Usually not. For most web sites, the normal "stateless" behavior of http connections means that connections can be torn down very quickly. Apache for example the default timeout is 15 second, IIS two minutes (although that could be lowered).

A worse case scenario is you have session affinity enabled, and a long connection timeout (15 minutes, 30 minutes, etc or higher), and a lot of unique visitors. In that scenario, the max connections could be orders of magnitude lower. That design with a high connection load would be rare.

Greg Askew
  • 35,880
  • 5
  • 54
  • 82