I wonder if there is any good guideline for system administrators to calculate the resources needed to host an ASP.NET website? I want to do some estimates on the processing power needed so I know what kind of VPS/Cloud I need to get.
Load testing will be your best solution.
Applications differ in how they scale depending on a large number of variables including types of problem solving, approach to solution and other factors.
100 concurrent users consuming 10% CPU does not mean 500 concurrent at 50%, it could be 20% or it could be 100%.
Your bottleneck could be processor or memory or network bandwidth.
Without actually placing the load on your application, any estimation will be merely a guess and will quite likely be proven incorrect.
Totally depends on the application.
If your looking at requirements for a specific application, then put it on whatever hardware you have that looks like a server, start perfmon running with a good selection of counters & then run some automated tools for load testing, performing some common tasks against the application. See how it performs, then take a guesstimate based on the hardware you have, the load you ran against it & how it measured up .
From experience the bottlenecks i see appearing with ASP.NET apps at the webserver end is usually RAM.
It's the database that runs the back-end of the ASP.NET application you need to worry about :-) I'd say 9/10 times I've seen performance issues with ASP.NET apps, the DB has been the bottleneck.