Whats the best way to determine the hardware requirements for an application
Asked Answered
H

4

21

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?

Harlotry answered 18/12, 2008 at 22:5 Comment(0)
A
16

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.

Andryc answered 18/12, 2008 at 22:26 Comment(2)
Can you clarify your calculations around interarrival times? At 5 seconds, the 3σ/1% case actually goes negative (-1.7). That doesn't make sense...Deimos
If you have fewer than zero arrivals in a second, how many arrivals are there. Well, zero., you can't have fewer than zero.Andryc
B
4

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.

Baluster answered 19/12, 2008 at 1:12 Comment(0)
N
1

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.

Nessus answered 18/12, 2008 at 22:21 Comment(0)
Z
0

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 ;)

Zworykin answered 18/12, 2008 at 22:12 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.