What methods do you use to determine what kind of hardware you need for a server?
I often find it very hard to predict what kind of hardware you will need for a web based application with a database.
Do you have any good methods or recommendations on how to best pick hardware to use?
This is sort of the basic question of capacity planning. You start by defining a workload model, which describes what you expect to get in terms of traffic. This can be as simple as "I expect 20 page hits a minute maximum."
Then you need to think about burst loads. Failing any other data, you can assume that interarrival times are exponentially distributed, which means that if you have a page request at time t0, you're as likely to have the next arrival tnext a very short time after t0 as a long time. (That's a gross oversimplification, but will do for a one-page answer.)
So let's say the average interarrival time is λ. because the time distribution is exponential, we know that we can approximate the interarrival time distribution with a normal, with one standard deviation (1σ) equal to √λ. So, we know that
Decide what you're willing to accept, and test to make sure your web system can sustain that rate.
I guess that your web app is not a critical business application as you said "a server" and "a database" otherwise you should perhaps look for some means of redundancy ?
At work we have some guidelines about the hardware, and the latest suggestion is that the server should be 64 bits as SharePoint 14 looks like a 64 bits only version.
If you can afford it I would recommend that the SQL server should be 64 bits as most people agree that adding more RAM (above 4 Gb) really pays off.
It really depends on your web application demands and traffic expectations.
Very few websites will need more than one reasonable dedicated server within the first months. And if you do, then you can probably afford to buy more hardware ;)
To add to what Charlie says, once you have a workload model you can feed this into a simulation of your system to determine the horsepower you need to satisfy that load. There are some tools that can do this sort of simulation:
This stuff isn't easy, and the commercial tools will cost ya.
You could also try looking for a benchmark that's close to your expected load and see what systems give you the performance you're looking for. The TPC benchmarks would be a good place to start.