The fact is, it’s been widely reported, and that makes it factesque
-Stephen Colbert, The Daily Show
Back in 2000, I wrote an article in Network World Magazine entitled “Parsing with Precisionâ€. The subject of the article was a condemnation of PC-based load balancers (those based on x86 hardware) and a praise of switch/ASIC-based load balancers. The primary argument was that ASICs were much better suited to do load balancing over general processors, and could handle much higher levels of traffic.
The article was born out of frustration in my early career with some x86-based load balancers in terms of performance. The technology was being pushed to its breaking point, and several of my clients at the time had load balancers that were melting under the ever increasing load they were experiencing.
Specifically, it was the connection rates that were breaking the load balancer’s backs. Pushing low-connection rate traffic such as FTP or HTTP downloads of large files doesn’t burden load balancers the way that a high rate of connections does. A load balancer can push 100 Mbits flat out without using 10% of its processor power if the connection rate is low, but 10 Mbits worth of tens of thousands of connections per second can choke even fast balancers.
As a result, I took a look at ASICs, which seemed more capable at the time of handling the higher rates of connections. Indeed, they faired much better with the higher levels of traffic at the time, and as a result I concluded they were the future.
But, I was wrong. ASICs weren’t the future.
Today, instead of dying out, x86-based load balancers have flourished. On top of that, a new low-end market has arisen to satisfy the enterprise needs of small and medium sized businesses who don’t need (and don’t particularly want to pay for) the feature-packed high-end boxes.
There were a couple of reasons for my miscalculation with ASICs. One of them was in those days, it was tough to look beyond the next quarter, as the needs of the day were overriding. My clients had ravenous users, eating more and more resources, and I needed something that worked that day.
The biggest miscalculation was that I failed to take into account was Moore’s Law. x86-based load balancers during the time of the article were pushing 650 MHz on Pentium III on the high-end. That had a SPEC CINT2000 integer performance score of around 290. Compare that to an Intel Xeon 3.0 GHz processor with a SPEC CINT2000 score of almost 3000, about 10 times faster.
The buses used on x86 systems have improved greatly too, increasing the internal bandwidth, allowing them to handle Gigabit-level traffic. Add to that faster memory, faster processor buses, and there’s a lot more power available today.
Another aspect in the ASIC conclusion was at the time the x86 platform was still regarded as “cheapâ€, and not quite enterprise-grade, especially in the Unix and networking world. If you wanted real performance and dependability, you went with Sun, or if it was a network device, you went with an ASIC-based switch or router. Linux was just on the cusp of enterprise adoption (which was among the factors of adopting x86 as enterprise-grade). It was the Dot Com Boom and money was no object, so our snobbery went unchecked. Nowadays x86-based systems are firmly established as enterprise grade, so it no longer suffers the cheapness stigma.
Another benefit is how easily x86-based load balancers are developed, especially in terms of the more protocol-aware functions such as SIP and cookie-persistence. This is of course, the primary benefit of general purpose processors, and vendors today have made excellent use of this flexibility and ever-increasing computing power. You didn’t need a chip fab, or to spin up test circuits to test. Just testing code. And many vendors have made use of open source operating systems and even open source load balancing code, such as the Linux Virtual Server project.
ASICs are being widely used in one area where they can really make a difference, and that’s SSL acceleration. While a general processor such as the AMD 2200+ processor can do around 150 RSA 1024 bit signs per second (as shown in the opeenssl speed test), an SSL acceleration card can do thousands without imposing upon the general processor. Compression acceleration and XML accelerators ASICs are also being used, although to a more limited extent.
ASICs are still used in higher-end load balancers, like F5′s BIG-IP, and can help to push the big traffic. But for 90% of the Internet sites out there, a good ‘ol x86 processor can handle their traffic needs just fine.

