Reputation: 1546
I'm developing an asp.net web application targeted to business customers. Can anyone provide some guidelines on how I can determine the number of users my application can support?
Also, the application uses session variables so its currently limited to one web server until that changes.
Upvotes: 1
Views: 828
Reputation: 34227
Only you/your team can determine the exact numbers that can be supported.
Your key to here is having a deep understanding of your problem domain and a distinct separation of the processing layers.
The separation allows you to isolate the bottlenecks, and tune the performance of the lowest performance factor much more easily, then move on to the next layer/performance limitation.
Do not make assumptions, as you will find impact unrelated to your assumptions that might surprise you.
This is one of the PAIN factors that I use to measure quality in designs – Plan All Incremental Needs and have discused elsewhere and in blogs.
Personally, I will often make decisions on design based on performance, but your marketing strategy might differ.
Upvotes: 2
Reputation: 102548
A good load balancer can ensure that a user will return to the same server.
Upvotes: 0
Reputation: 51186
Measure the resources (CPU, memory, disk, bandwidth) needed for typical actions within your application. Divide available resources by resources needed for a representative user "session" and you have a rough number.
Until you have a good set of real data, you'll have to make guesses about typical usage habits and the resource requirements. That's about all you can do for a 1st pass at estimating capacity.
Upvotes: 0
Reputation: 12396
So you know, session can be made to work with multiple web servers very simply by moving it out to a sql server database.
A quick how to is available here
As for your original question, I would look into load testing. Hopefully there will be other posters who know more about that. I would focus on page views, as opposed to users.
Upvotes: 0
Reputation: 15663
You can use a session state server running on a second box or sql server backed sessions to get around the single box issue.
As for the question at hand, there is no real way to determine that besides getting your hands on production hardware, setting up the app and running load tests until you can figure out where she breaks. This won't necessarily give you the real number as you have to make assumptions about what the users are doing and it is pretty much impossible to simulate the effects of the network cloud in test environments.
Upvotes: 3