I currently have 2 1U rack servers, one running IIS the other MySQL. I'm replacing the database server because the hardware is old. The new server I purchases is also faster than my web server though, So I'm trying to decide which server should take each role.

My Current Web server is a Dell R200 with an Intel XEON X3220 and 4GB Ram. My new server I bought is a Dell Poweredge 1950 with Dual Intel XEON X5460 and 16GB Ram.

I also bought an Intel SSD for use with whichever server becomes the dedicated database server. Both servers currently have 10k SAS drives.

The X3220 CPU Passmark score is 3,000 the X5460 CPU Passmark score is 10,000

It seems to me that PHP uses a lot more CPU than MySQL. I host 30+ sites on IIS all of which are PHP and a few run on Drupal. It seems like it might be an easy choice but its a huge amount of work to transfer everything from the one server to the other. And maybe i'm not correct in my thinking and MySQL can really benefit from the faster CPU.


The answer is very dependent on how you are using the servers. You should spend time figuring out what is limiting performance on each server. You can track statistics using something like New Relic or Munin or monitor.us (ran out of links as a new user) and figure out which is CPU bound, which is memory bound, and which is IO bound.

In my experience, your web server will be CPU bound and your database server will be disk IO and Memory bound, so it'd sorta be a toss up since the new server is better in both regards. Than being said, it's usually easier to upgrade memory than processor so I'd stick more ram in the DB server and put the web server on the new one.

  • 2
    +1 - I agree with everything except your last statement about the database server. Although we don't know the ops usage, generally your database server works a lot harder than the web server. Of course, your mileage may vary (especially with a poorly written PHP application) – Mark Henderson Jun 19 '12 at 5:38

If both servers are windows (even the one running MySQL), you can easily monitor what the bottlenecks are using perfmon. You'll want to measure %CPU time, pages/sec (which is a measure of swapping and therefore memory pressure), and average disk queue length (whcih is a measure of outstanding disk IOs).

My guess is you'll find that neither are CPU-bound, and that the database server will have a higher disk queue length and pages/sec. Meaning adding more RAM or faster disk to the DB server will give you a better experience.

Be careful to look at the peaks in your stats, and use a small time slice for sampling (say 10 seconds). Record to a file/DB instead of just the GUI display and work with the data in Excel. Longer-term counter samples are averages, so even 60 sec can hide really ugly user experiences. Also be aware that adding more RAM will generally decrease disk queue length, since more reads can come from RAM cache instead of the disk.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.