When do I upgrade my server? How do I understand the graphs (are there any documents)?

I am new to server management. I love the platform and the pricing, but I’m disappointed in the FAQ’s and documentation. I can’t find any source on the question “When is it the right time to upgrade my server?” or documentation explaining how to understand the server graphs. Any expert advice? My CPU usage now reaches 20-35%. And memory 65-75%. Of course, memory and CPU is easy to understand, but I don’t know at what percentage I should upgrade. And Disk I/O and bandwidth? How much is low, medium, or high usage? Any commands to figure out max I/O and bandwidth?

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

DigitalOcean Employee
DigitalOcean Employee badge
March 28, 2019
Accepted Answer


This is a great question. Sadly, there is no way to answer it clearly, because this is an issue that is relative to factors which have seemingly unlimited variables. I’ll give you an example of what I mean, and I’m going to use the example of a website being the application in question (because I can’t really know if this is what you do with your droplet).

Right now you might be using 50% of your memory, but why? What is using that 50%? Do you ever spike higher than that and, if so, what causes that spike? Is that cause something which is elevated by external factors (website visitors) or internal factors (cron jobs)? This can matter because external factors, like website visitors, are largely beyond your control. So you need to plan ahead for the traffic you want to be able to handle, if you can draw a reasonable correlation to memory usage per website visitor. If it’s caused by internal factors, these are within your control, and you can tweak them as needed to keep you from having to upgrade (or at least plan your upgrades).

It isn’t uncommon for many people to not upgrade until they hit a resource cap that causes performance issues with their application. It also isn’t uncommon for them to not know that this was about to happen. You can’t come right out and say something like “X website visitors equals Y memory usage” because web applications are things that vary so dramatically that one website may use 1MB of memory per visitor, while another may use 256MB of memory per visitor. So it’s a legitimate question to wonder how they were supposed to know better beforehand.

The best advice I could offer someone, using a website as my example, would be to watch memory usage in correlation with application usage, and then try to say “X visitors equals Y memory usage.” Then, you might have a baseline to help you know when to upgrade. Even still, one page of your website could use more memory than another because of how it loads on the back-end, so this isn’t an exact science. Poorly optimized applications can also change this math over time, one example being a website that reads/writes to a database table on every visit therefore increasing overhead per page load over time (I’ve only seen this a few hundred times).

Besides doing your best at math, you should monitor your application and watch for problems that you hit. When problems occur, you look for the best solution. Maybe, at that time, upgrading is the solution. If it is a website, something like UptimeRobot can help you to be alerted when your website is down. You can use data like that, in correlation with digging through your application logs, to find out what might have happened.

There is no “one size fits all” solution here, and everything I’ve given above is intentionally a bit vague. This is something you will make personal decisions about as you go, and there is rarely only one right answer for how to solve problems from increased usage.

As for disk IO and bandwidth, I recommend “iotop” (disk) and “vnstat” (network) for monitoring these things. It’s unlikely you need to be looking at disk IO, and bandwidth is rarely an issue for someone not running things like VPN, TOR, BitTorrent, etc.

I hope that at least helps some :)


Yes, it does! Thanks. I am running about 18 WordPress sites on my server. But I have never reached even 80% memory usage, so I guess I’m good for now.

But how do I monitors 18 websites traffic vs memory, do I have to do this manually? Add up all the visitors on the sites and see the memory?

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel