Whats the best way to determine the hardware requirements for an application

19,381

Solution 1

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

  • about 32 percent of the time, two pages will be requested less that λ- √λ seconds apart.
  • about 5 percent of the time, two pages will be requested less that λ- 2√λ seconds apart.
  • less than 1 percent of the time, two pages will be requested less that λ- 3√λ seconds apart.

Decide what you're willing to accept, and test to make sure your web system can sustain that rate.

Solution 2

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.

Solution 3

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.

Share:
19,381
John Sonmez
Author by

John Sonmez

I am a software engineer dedicated to best practices. I specialize in unit testing approaches, and continuous integration.

Updated on June 03, 2022

Comments

  • John Sonmez
    John Sonmez almost 2 years

    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?