views:

84

answers:

3

Hi SO,

A client of mine has a website and they need to determine how 'scalable' the site currently is. What I mean by this is the number of users browsing around the site concurrently.

It's a custom e-commerce app in .net, not written by myself and the code is... well lets just say, a bit dubious.

A much bigger company is looking to buy them / throw funding their way but they need some form of metrics to show how much load it can take before it falls apart. This big company has the ability to 'turn on the taps' to a huge user base - and obviously doesn't want to do that if the site is going to fall over with a sneeze of traffic.

What is a good metric to provide here? And how can I obtain it?

Edit: Question revised

A: 

Well, I suppose it'll depend on what the client cares about.

Do they care about how many users to can access the site at once? Report on that, but running simultaneous requests from another server until it dies, then get the number.

Do they care about something else?

For me, when someone says they want it to 'scale', it really means they have no idea what they want. So try and talk to them, and get specific details of what, exactly, they want to see 'scaling', and then, once you find the areas to analyse, you can do so trivially, and attempt to improve them.

Noon Silk
"Do they care about how many users to can access the site at once?" Yes, exactly this. Any ideas on some tools that can be used to run such a test?
DaRKoN_
Yep, you can get yourself a copy of the IIS Resource Toolkit: http://www.microsoft.com/downloads/details.aspx?FamilyID=56FC92EE-A71A-4C73-B628-ADE629C89499, and one of them will do many X requests per N threads, and get the responses. You can configure that to run from a few machines, with various threads, and check the timings and responses you get.
Noon Silk
I must say, I'm slightly amused by the downvoters. Feel free to expand on why you think I'm wrong :)
Noon Silk
+1. I think your suggestion is ok. :)
Jakob Gade
A: 

I always use Apache's "ab" tool: link text

Run it from a different machine, preferably a BSD or Linux machine with no firewall rules that will limit the performance of the tool. Because otherwise the result might not be as reliable. If you use a Windows machine, make sure you're using one that isn't limiting the number of active TCP connections.

When using "ab", the number you're looking for it "Requests per second". Experiment with the concurrency switch to see how many concurrent users you can handle before you're getting a lot of errors, or when the requests per seconds is dropping rapidly.

When you are noticing the webserver is having serious issues you should restart the webserver, and let it rest for a while before continuing the test.

elmuerte
A: 

You'd be better off with a hosted load test, as this might give you more insight on realworld scenario's (something like http://www.scl.com/software-quality/hosted-load-test, no experience with them though).

Furthermore: scalability is as far as I know, not how many concurrent users can be served, but the way how easy it is to serve more when the site grows bigger (by adding extra servers etc, how easy is it for the website to scale up, does the codebase allow to use unlimited number of servers, etc.)

Jan Jongboom