February 03, 2003

Scaling Web Services

Bill de hÓra posted some comments about my earlier posting "Architectural Cross-Pollination" about scalable systems:
Wow. I can't begin to imagine what this kind of capacity would cost to roll out using today's web technologies (most people might [be] surprised at how few concurrent requests it takes to slashdot a site).
[Bill de hÓra - scale this]
The more I look at scalability and performance, the more convinced I become that it has to be viewed as a "system" problem - in other words there are many factors that need to be considered and balanced to achieve optimum results.

This was reinforced a couple of weeks ago when I was assisting with some performance and scalability benchmark testing, in a test lab which had the fastest TCP networking infrastructure I have ever seen! It was surprised how much difference just that one single aspect made to the throughput figures we saw. Without any tuning of the server setup, we got throughput equivalent to 2.5 BILLION transactions per day for a simple Web Service running in CapeConnect Server v4.0! Wow!! This took everyone so much by surprise that we ended up repeating all the tests from scratch just to check our numbers. And all this without the CPU meters going over 5% utilization, so it looks like we could have got this even higher with some system and server tuning which we did not have time for.

Based on the previous numbers I've seen, it was clear that the super-network in use was having a significant effect on the numbers here, as there was no change to either the application / infrastructure architecture or server config.

Clearly balancing all parts of the system configuration is important for achieving optimal throughput for all software system, not just Web Services.

Entry categories: Web Services
Posted by Jorgen Thelin at February 3, 2003 11:00 PM - [PermaLink]
Traceback List
Jorgen, Just checking my math but your transaction number is about 29,000/sec. Seems a little high what exactly were you doing ? Regards John Posted by: John McDowall on February 4, 2003 10:16 PM
Hi John, Yes, the numbers you quote above are about right. 50 clients were each getting throughput of nearly 600 transactions per second, based on the results I saw, which gives the figure you quote above as the server throughput. Let me repeat, I am convinced that these results are in a large part dependent on the 2-Gig network infrastructure in the lab removing the vast majority of the network bottleneck for the web service call. However, this just emphasises the "systems" nature of performance tuning which the original post was all about. Hope this doesn't turn into another benchmark scandal a'la TMC, as I never thought I would find myself having to apologize for numbers that are "too good" ;-) - Jorgen Posted by: Jorgen Thelin on February 10, 2003 12:20 AM
It is always interesting to see what a fast network is capable of. For distributed applications the network is frequently the bottleneck. Distributed loosely coupled applications are not inherently slow - we just have slow networks... j Posted by: John McDowall on February 14, 2003 05:23 AM