views:

464

answers:

4

I am having real trouble trying to get decent answers to my questions from VPS and dedicated hosting provider's sales people. I have a fairly simple set of requirements - how do I select a server spec / package and be confident that I have got it about right? Are there metrics to use - number of Http requests per minute for example? are there other benchmarks? How do you approach it?

Initial requirements are:

  • must support a private ASP.NET application supporting upwards of 200 users (possibly up to 1000). user activity will be largely continuous throughout the working day
  • the application is more intensive than your average 'website' (but not unduly so)
  • users will be uploading and downloading large files
  • requires a MS SQL Server database - (would workgroup edition suffice?)
  • must support another 5 public domains with low traffic levels and little to no database activity

Follow Up: Thanks for the responses guys. I have got access to a system I can configure for profiling, so can anyone recommend any profiling / load testing tools?

+2  A: 

Your requirements are too vague to make a decision. For example, what is a large file? What is a low traffic level?

One of the easiest ways to get it right is to just setup a test server + network, and try and simulate a normal load.

If you can't setup a test environment, you are probably just stuck with guessing about the correct size, and then testing on the real system, and adjusting your service level as needed.

Zoredache
+2  A: 

You could add all the data you want here about number of users, etc., and you could even make it more quantitative than you have here - it's an impossible question to answer in this way.

The real answer is: profile, profile, profile. You must measure how the application and its database behave to make any kind of determination about the resources needed to support N users at a certain level of activity. If you really know or have reason to believe that your software will have non-trivial load right out of the gate, then my best advice to you is to look into load testing tools and services.

bradheintz
+1  A: 

You need to profile the load you are expecting. Then, you should choose a provider that can meet your anticipated demand and provide a path for growth. It's a lot easier growing if your colo provider can handle the growth gracefully.

That is, if your project is the biggest one your provider has ever done or requires more sophisticated hardware than they are used to, you need to look for someone bigger.

When you know what you want, be very specific, but not overly aggressive with your requirements. For example, if you need 8gb of memory, say 8gb. Don't say 4gb required but 16gb would be nice.

I'd also request quotes on two systems: what you need today and what you might need in a year.

Michael Haren
+1  A: 

You're on the right track with http requests per second. Also look at disk io and memory usage by IIS. They need to know how much traffic their hardware can handle.

SQL Workgroup edition should work for you - it works up to 3GB of memory.

http://www.microsoft.com/sqlserver/2005/en/us/compare-features.aspx

Sam