|
Performance Comparison
To make a fair estimation of xLswitch performance, we decide to test another
commercial load-balancer product on the same hardware and OS version.
Popular Zeus Load Balancer v1.3.5 (www.zeus.com) was used for the comparison, since
we were not able to obtain a Linux version of Resonate Central Dispatch.
Performance
The chart below summarizes the performance data collected in tests of the four-server farm
under the load of one to six client machines. Three series of measurements were performed - first used one thread per client, second used 50 active threads, third - 200 threads.
As you can see, the peak performance of xLswitch beats Zeus Load Balancer by more than 30%.
This is probably explained by the overhead of user-space request processing processing employed in Zeus product.
Scalability
We were also interested how much the aggregate performance couls be improved by adding more servers to the farm.
The chart displays the peak performance of the cluster depending on the number of machines in the farm.
While both products could be used to increase the site availability, only xLswitch demonstrated the significant step up in performance when adding a server to the farm. Probably, the total cluster performance based on Zeus is limited early by the peak troughput of the balancer itself.
HTTP 1.1 performance
To increase performance even further, several requests could be sent during one HTTP version 1.1 session. It lowers down the number of opening/closing of TCP connections, and improves the speed significantly. Our tests clearly shown that Zeus Load balancer is limited in throughput and can't scale well beyound a couple servers in the farm, see the picture below.
How we tested
Identical machines were used as servers and client:
- 2xPentiumIII 600MHz 512K cache
- 256M RAM
- 3c905B network card
- Linux kernel version 2.4.2
all connected by fast ethernet switch. We used thttpd v 2.20b as a high-performance HTTP server and ab as a client
(Apache HTTP server benchmarking tool). The workload used in tests was a 12-byte static file, small enough in order not to saturate the network. Unless stated, HTTP version 1.0 requests were used.
|