Ghost on 1GB Digital Ocean droplet using 100% of memory

I’m having troubles with my Digital Ocean memory usage (base droplet with 1GB of RAM). I’m trying to set up one Ghost site with 2 posts for now and virtually no traffic (a lot of theme changes/uploads though), but the memory graph hits 100%. free -h command indicates only 56MB free memory…any recommendations?

Website data
Version: 5.12.0
Environment: Production
Database: mysql8
Mail: SMTP

You could try adding a swap space, which typically helps with running out of memory. Here’s Digital Ocean’s official guides for doing so:

Thanks, of course. But I’d first like to find the cause for this and try to solve it.

Install and run htop or glances to see what’s using memory. In addition, optimize Nginx.

1 Like

Another method to help debug this:

  • Restart your server and on a fresh boot, see how much memory is being used. You’ll then have a better baseline to see how much Ghost is using on top of that
  • Start Ghost. Recheck memory usage.

You’ll then have a bit better sense of memory usage. You’re also paying for 1GB — might as well use as much of it as you can :smile:

Thank you both. I’ll se what I can do.

I ran htop and my Ghost usage is about 130MB, which is normal I guess. Without Ghost running and on a fresh boot, the usage was about 530MB.

I imagine that when I ran a lot of theme updates and added more staff to Ghost the usage increased.

I guess I’m trying to understand if this usage is normal - if it this, then fine I’ll upgrade to 2gb. Sharing the baseline htop result.

This looks expected to me and will function fine. Going up to 2GB will give you more headroom, but you could also add some swap like @mjw shared.

1 Like

Hi Martinverbic, :grinning:

Here are a couple tricks I use to maximize my memory on digital ocean. I recently shared theses tips plus more in a medium article. I was trying to host multiple ghost blogs on one droplet so these tweaks were important.

Optimizing your Digital Ocean Droplet

Swap File

Swap is a space on a disk that is used when the amount of physical RAM memory is full. When our droplet runs out of RAM, inactive pages are moved from the RAM to the swap space. The swap file will not be as fast as ram, but it will definitely help.

Note: If you have 1GB of RAM, then it is recommended that your swap file be 2GB.

Log Rotation

The Ghost blog platform doesn’t automatically set up log rotation when it is installed. As a result, Ghost will perpetually append to its log files until you run out of disk space. Setting up log rotation will ensure you only keep one week’s worth of ghost logs.

Use Cloud Flare

Adding the free version of Cloudflare will improve performance by blocking bad actors as well as caching your site on their CDN, which decreases the load on your server.

Reduce Ram Usage by MySQL

This tip dropped my RAM usage by 16%

I hope these are helpful,


Thanks for the answers, this really helps🙏

Regarding your htop results, who is using a 39% of memory is MySQL, I faced with the same problem with a blog using the AWS free tier with 1G, I configured the minimal configuration for MySQL and the MySQL RAM usage drop down almost 40% and I added a script to free up RAM every certain time using a cronjob. You can find how I did it here it’s for a Raspberry but I used the same for the AWS EC2.

I think 1GB is the bare minimum required by Ghost. I was having this exact same issue. I actually upgraded to a 2GB memory server and still faced around 60-80% load when running free

My solution was to switch entirely to a self-hosted Contabo VPS where they offer much more memory for a much better price.