by Malcolm Turnbull
Lies, Damn Lies, and Benchmarks….
I get quite frustrated with benchmarks because they are very hard to perform properly, and even when you do them properly its very hard to get any useful data from them.
Its all very well knowing that a web server can do 4,000 connections per second, but what we really want to know is something along the lines of:
How many shoppers at my ecommerce site can one web server handle IF:
- 200 users are doing free text searches
- 100 users are in the HTTPS shopping basket
- 500 users are just browsing
- 2 hackers are trying to get in
- & 1 proxy server is spooling 10,000 connections to cache the site
Anyway after getting hassled by yet another customer for a Benchmark on our EC2 VA load balancing appliance I thought I’d take a quick crack at it:
Being Lazy my quick and dirty test involved using Apache Bench and fiddling with the HAProxy config in the same way that Willy did for his 100,000 TPS 10g test:
tcp-request content reject
So I fired up an m1 small instance for my test client and another one for my test load balancer and did a simple:
ab -n 10000 -c 120 http://220.127.116.11/
Actually thats not entirely true… I did lots of different Apache Bench command to work out what concurency level worked best but to cut a long story sort…
Requests per second: 5303.80 [#/sec] (mean)
Requests per second: 436.34 [#/sec] (mean)
And what about HTTP?
Requests per second: 9038.45 [#/sec] (mean)
Requests per second: 12240.03 [#/sec] (mean)
Requests per second: 5745.43 [#/sec] (mean)