Test Center guide: Load balancers and Web accelerators
Barracuda, Citrix, Coyote Point, F5, Kemp, and Zeus offerings stretch from no-frills appliances with basic load balancing to kitchen-sink solutions with rule-based traffic management, application security, and application performance optimizations; here's how to pick 'em, based on our tests
Whether you call them application delivery controllers, application accelerators, application traffic managers, or just load balancers, the solutions for scaling out Web sites and improving the performance of Web applications have come a long way from their humble beginnings. The result is a great deal of choice in the marketplace, from bare-bones appliances with basic functionality to high-capacity switch-based systems that handle Web traffic in wildly sophisticated ways.
In its simplest form, a load balancer is a device that sends TCP/IP requests to more than one host, creating a cluster of servers that all present the same Web site. In fact, basic load balancing can be accomplished by adding multiple IP addresses to a host entry in the domain name service (DNS) system. However, doing this creates a blind round-robin system that will send the next request to the next IP address, whether that IP address actually has a working server on it or not and regardless of whether or not that server is the best server to handle the next request.
[ Read today's reviews of Kemp Technologies Load Master 1500 and Barracuda Load Balancer 340. Read previous reviews of Citrix NetScaler, Coyote Point Equalizer, F5 BIG-IP, Juniper DX Series, and Zeus ZXTM. ]
Most advances in load-balancing technology have been aimed at ensuring that requests go to a server in the group best able to handle a request. Various algorithms decide which server gets the next request: the server loaded with the fewest connections, or the one responding fastest to a ping, for example. Vendors also offer proprietary algorithms and even agents to run on each server to provide more granular and accurate information on how heavily loaded each server might be.
The process of determining whether servers are available has also grown more complex and precise, from the basic TCP/IP ping to checking whether the server has a responsive network connection to checking whether a particular service (be it an HTTP daemon or a back-end SQL server) is running and returning a proper response to a query.