I rent a dedicated server for one of my sites (Linux, WHM/cPanel). The site gets a decent number of monthly visitors (over a million), and I am starting to wonder how I should monitor it to discover when a server upgrade will be needed.

Obviously I could wait until the server starts to crash a lot and the site starts loading very slowly, but I would like to avoid reaching that point, having a better way to monitor things.

My questions:

1. Is monitoring the server load on WHM enough to know whether or not an upgrade is needed? On my case average server load is 0.5, and the server has 8 cores, so is this enough to say I probably don't need an upgrade?

2. Is there some other metric I should pay attention to to evaluate this?

Thanks in advance.

  • 2
    Enumerate all of the core hardware resources available to your server. Then monitor all of them. That's not enough, though, as you also need to understand how your application is affected by each resource and how best to respond to increasing resource contention.
    – EEAA
    Oct 7 '13 at 13:56

You should also keep an eye on the amount of time your CPUs are idling while waiting for I/O (IOwait). If there is a I/O bottleneck, your multi-core machine is just going to sit there idling, waiting for I/O request(s) to complete.

Another important metric is the age of your server. You are likely paying your hosting provider by the month and have signed up for X months contract. It is probably a good idea to consider upgrading your hardware, once your contract ends. You sign a new contract with your hosting provider and they provision you with new hardware. Just like most people do with their mobile phones.

This way you are refreshing your hardware (and software) regularly and hopefully avoiding various hardware issues that accompany ageing servers.

-- ab1


The answer depends on several parameters like:

  • can your users bear minor slowdowns ?
  • can you afford a newer server ?
  • is there any other alternatives (code optimization, cache, move static files to a CDN ...)

If your server is often above 50% for long period of time (1 min) it's time to change it. It is normal to see spikes in CPU usage, but if they last for long time it means that a query last too long and that other users are waiting.

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