Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you determine the hardware needed for a server? [closed]

I would like to know how do you determine the hardware needed for a server?

I have a DB Server running MySQL, and now I want to buy a server, but I don't know what hardware specification that I need. This is a server for a hosting a web page.

EDIT: The software it's just MySQL Server

like image 630
Agusti-N Avatar asked Dec 11 '08 13:12

Agusti-N


2 Answers

Databases can be tough to size. CPU speed usually isn't key, but if it's a parallel work load, more cores is better. Lots of memory and fast disks are usually key. It's not uncommon to see 16 or 32GB of memory in a MySQL server now. Of course, that doesn't make a lot of sense if your data set is only 2 or 4GB.

If you can afford enough RAM to put your whole data set in memory (not ram disk, but having the database cache it), get that much RAM. This isn't necessarily a good long term strategy if you expect your data to grow substantially.

If your data size is larger than the amount of RAM you can afford, you can try to compensate with faster disks and using more smaller disks (8 x 74GB instead of 4x 136GB).

You can get some ideas about performance by taking hardware that you have now (assuming you don't have large servers kicking around) and running a scaled down benchmark with some sample data. That should give you an idea of where your bottlenecks are and where you need to spend more cash.

If you're working with a large vendor (Dell, HP, Sun, IBM, etc), you can ask if they'll send a demo unit with the specs your considering. That way, you can run your benchmarks before you buy the equipment.

And finally, if this is your first database server for the app and you have no idea if it's going to be successful, don't worry too much. If you start with a 'low end' server and your app is successful, you can easily forklift upgrade to a beefying server.

like image 99
Gary Richardson Avatar answered Sep 21 '22 13:09

Gary Richardson


One way is to model your system and simulate your expected load. There are some tools that can do this sort of discrete event simulation:

  • Hyperformix
  • SimPy
  • WikiPedia list of simulation tools

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.

Good luck :)

like image 23
Patrick Cuff Avatar answered Sep 19 '22 13:09

Patrick Cuff