cluster architecture - how, why, best practices?

Hello everybody!

I would like to share some views on “cluster building”.
There are lots of types of dedicated servers out there ranging from single core with 2 gig of ram to 64 cores with 1TB of ram. What, when, why? I notice that giants like google, facebook, wikipedia use very low spec servers, but a huge amount of them to make everything run fast.

I am running some moderately popular websites which require a lot of resources. There’s a heavy mysql, lots of php pages to load, media server and a mail server.
At this point these sites are divided over 2 servers with identical specs:
i7 quadcore hyperthread
32GB ddr3 ram
2x 3TB hdd @ 7200rpm
100Mbit uplink

Both servers run centos with a default virtualmin install. One of the servers has an additional media server.
Both have some caching (apc, memcache) and both are using zendguard and (should be using) FCGID.

However, the mysql is getting too heavy for the system and I’m thinking of splitting things up a bit.
Here’s my current idea:

  • 1 dedicated for DNS (cost: $3 pm)
  • 1 dedicated for mysql of all sites (cost: $20pm)
  • 1 dedicated for files & mediaserver (cost: $40pm)
  • 1 dedicated for webserver & mail (cost: $40pm)

What do I need to watch out for? Am I crazy for having this idea or is this normal thinking?
Will this improve or decrease pageload speeds?

A few pointers would be great :smiley:

Thanks