How much RAM does your VPS need?

Most small servers need 1 to 4 GB. How to estimate memory from what you'll run, then measure a real server to see whether it's too small or too big.

Most small Linux servers need between 1 and 4 GB of RAM: 1 to 2 GB for a VPN, a static site or a small blog, 4 GB for a web app with its database or a handful of Docker containers. Busy sites, CI runners and game servers with more than a few players want 8 GB or more.

Those are starting points. The rest of this page is how to get a better number for your own server, and how to check it once it's running.

Why memory is the number to pick by

A small server almost always runs out of memory before it runs out of CPU or disk. A slow CPU makes things slow. Running out of memory makes things crash: the kernel's out-of-memory killer picks a process, usually the biggest one, which is usually your database.

So size for memory first, and treat CPU and disk as checks afterwards.

Add it up

Start with the system itself. A fresh Ubuntu or Debian server uses a few hundred megabytes. Then add what you plan to run. Rough figures for a small, lightly used setup:

What Memory to allow
nginx or Caddy serving a static site Tens of MB
WireGuard VPN Almost nothing
WordPress (nginx, PHP-FPM, MariaDB), small site 512 MB to 1 GB
A Node.js, Python or Ruby web app 100 to 500 MB per process
PostgreSQL or MariaDB, small database 256 MB to 1 GB
Docker itself About 100 MB, plus each container
n8n 512 MB to 1 GB, more with heavy workflows
Coolify 2 GB for Coolify, before your apps
Minecraft (Paper), a few friends 2 to 3 GB for the server, plus the system

Add them up, then leave a quarter spare. Linux uses spare memory as disk cache, which makes everything faster, so "spare" isn't wasted.

Databases deserve a special mention: they'll happily use as much memory as you let them, for caching. That's good when they have room and bad when they're fighting your app for it. Set their cache size on purpose rather than taking defaults written for a dedicated machine.

Measure a running server

The best estimate is a measurement. On a server that's been running your real workload for a few days:

bash
free -h

Look at the available column, not free. Linux fills free memory with cache and hands it back when a program needs it, so "free" always looks alarming. "Available" is what programs can actually still get.

To see what's using it, biggest first:

bash
ps -eo rss,comm --sort=-rss | head -15

The first column is resident memory in kilobytes. For Docker containers:

bash
docker stats --no-stream

Signs you need more

  • Available in free -h is regularly under a tenth of the total.
  • Swap is always in use, and vmstat 5 shows numbers in the si and so columns most of the time. That means the server is constantly moving memory to disk and back.
  • Processes are being killed. Check with:
bash
journalctl -k | grep -i "out of memory"

Any line there means the kernel had to kill something. Find out what and why before it happens again.

Signs you have too much

If available never drops below half the total, even at your busiest time, you could run on a smaller plan. Watch it for a full week first, so a weekly backup or a Monday rush doesn't catch you out.

Swap is a safety net, not more RAM

A swap file lets the kernel move rarely used memory to disk. On NVMe that's quick enough to survive a spike, which beats a killed database. But a server that swaps all the time is slow. If swap is always busy, you need more memory, not more swap.

Doing it on VPSNine

VPSNine plans come with 2 GB (Budget), 4 GB (Standard) or 8 GB (Extreme) of memory, fixed and yours on KVM, with NVMe storage underneath for swap. Choose a plan matches plans to typical workloads, and the plans page has the full specs.

Each one-click app lists the smallest plan it runs well on. n8n, Coolify and Minecraft start at Standard; most of the rest run on Budget. If you're between two sizes, take the smaller one and measure for a week.

Be first when orders open

Join the waitlist and we'll send you one email when VPSNine launches. Pick a plan if you already know which one you want, and we'll size the first servers around it.

  • One email, on launch day
  • Monthly, or a year up front in Bitcoin
  • 14-day money-back guarantee