Review of 5 most popular layer 7 load balancers
Several months ago we've performed a set of tests on some of the most popular load balancers: HAProxy, Barracuda 440, Zeus, LoadBalancer.org Enterprise R16 and Nginx proxy. We ended up picking Zeus and HAProxy as two load balancers that we will be supporting within Zombie Cloud Platform.
HAProxy is probably one of the most commonly used load balancers. It's free, open source, well maintained and extremely lightweight. It is designed to run on a single or dual core systems with minimal amount of RAM. Our tests have showed that you can achieve 1,800-2,500 requests per second (200 concurrent connections) on a virtual server allocated a single core of Intel Xeon X3440 CPU and 1GB DDR3 RAM. In most tests CPU usage did not go past 20% and HAProxy process has never used more then 20% of RAM (that's 200MB!).
Biggest drawback is that there is no direct API or web interface to perform proxy management so you will have to write your own scripts to manage HAProxy's configuration.
Zeus Load Balancer offers a high performance load balancer with lots of features. Some of the best features include:
SOAP APIs and a web-based management interfaces
Built-in clustering and high availability
It comes in two flavors: installable package that will work with most Linux distributions and a pre-configured virtual machine image. We've opted for installable package and setup process took us roughly 10-15 minutes from beginning to end.
Due to overhead of running management interface and other bundled services Zeus required a little bit more CPU and RAM. With that said, we've tested several server configurations and were able to get 2,200-2,800 requests per second (200 concurrent connections) with just a single core of Intel Xeon X3440 and 2GB of DDR3 RAM allocated to the virtual machine. During most tests CPU usage did not exceed 60% and RAM utilization never went past 1.2GB.
Zeus offers a free developer license that will allow you to run a single load balancer (no high availability) with a bandwidth cap of 1 megabit per second. Paid licenses are available on either monthly or perpetual basis.
LoadBalancer.org Enterprise R16
LoadBalancer.org Enterprise R16 is a hardware based solution. It's Layer 7 load balancing is based on HAProxy so performance is very similar. Features include:
Web-based management interface
Built-in high availability
Web-based interface isn't anything fancy but it gets the job done.
After slightly tweaking some kernel settings we were able to achieve 2,000-2,300 requests per second (200 concurrent connections). Hardware was based on generic SuperMicro server with Intel Atom 330 CPU and 2GB DDR2 RAM.
LoadBalancer.org also offers other load balancer models at extremely competitive prices and their customer service is superb. If you are on a tight budget and don't need all the bells and whistles - definitely give them a try.
Model 440 is Barracuda's higher end hardware load balancer model. Hardware is definitely refined and looks really good on the rack. Performance is definitely there too - we were able to achieve 2,200-2,400 requests per second. Some of the features include:
Built-in high availability
Web-based and API management interfaces
The only two drawbacks are price and web-based management interface. This unit will cost you slightly over $3,500 for hardware and $672/year for optional (required for the first year) update subscription. In my personal opinion - it is a little too expensive comparing to other load balancers.
Nginx web server has support for simple load balancing through HTTP Upstrem module. It's one of the easiest load balancing solutions you can find and usual setup will not take more then 20 minutes. Like HAProxy, Nginx has no management interface and you will have to write your own scripts to provision configuration changes.
Performance is mediocre. We've tried multiple different server configurations and best results were 1,200-1,800 requests per second with an average of 40-50% CPU utilization and about 40% of RAM utilization on a similar virtual machine that we've used for HAProxy testing - 1 Intel Xeon X3440 CPU core and 1GB of DDR3 RAM.