−25%

on annual Windows plans, until 31 Oct. See plans

EQVPS
Get started

How much disk space does a VPS need? We measured what actually fills it

Oct 25, 2026 · 4 min read · EQVPS Team

Plan pages list RAM first, but a full disk takes a server down just as surely. With "No space left on device", databases stop writing and sites stop answering, however much memory is free. Disk use isn't hard to predict once you know what grows. We booted fresh servers from our own images and measured each of the usual suspects.

What a fresh server uses

Measured right after the first boot:

SystemDisk used
Alpine Linux 3.21153 MB
Debian 121.2 GB
Ubuntu 24.042.7 GB
Windows Server 202214.0 GB

On Linux, almost all of a 15 GB Nano is yours from day one. Windows takes more than a quarter of its 50 GB plan before you install anything, and as you'll see below, updates take more.

Part of Ubuntu's 2.7 GB was easy to win back. 440 MB was the package cache from first-boot updates, and three kernels were installed where one is in use. Two commands brought it to 2.16 GB:

sudo apt clean
sudo apt autoremove --purge

Docker: images add up fast

Installing Docker itself added about 300 MB. The images are what count. We pulled eight common ones, one after another, and measured how much the disk grew each time:

ImageDisk added
nginx:alpine91 MB
nginx:latest232 MB
postgres:16501 MB
python:3.12-slim59 MB
node:221,564 MB
mariadb:11437 MB
wordpress:latest960 MB
redis:7-alpine55 MB
Total3.9 GB

Images that share a base reuse its layers, which is why python:3.12-slim added only 59 MB after nginx:latest and postgres:16 had already brought in the same Debian base. Alpine-based images are several times smaller than the full ones. node:22 alone is 1.5 GB, so build with node:22-slim or node:22-alpine when you can.

Images pile up when you update: each docker compose pull leaves the old version behind. On our test server one command cleared all of them:

docker system df
docker system prune -a

It reported 4.1 GB reclaimed. prune -a removes every image no container is using, so run it when your stack is up. Volumes are left alone unless you add --volumes.

Logs: the one that fills a disk overnight

Docker keeps everything a container prints, with no size limit by default. We started a container that printed one short line in a loop, the kind of output a health check or debug mode produces. After 30 seconds its log file was 6 MB. At that rate it would write about 17 GB a day, more than a whole Micro plan's disk.

Set a limit for all new containers in /etc/docker/daemon.json:

{
  "log-driver": "local",
  "log-opts": { "max-size": "10m", "max-file": "3" }
}

Then sudo systemctl restart docker and recreate your containers (docker compose up -d --force-recreate). Existing containers keep the settings they were created with. With the limit, the same test container's log was 4 MB after 30 seconds and can never pass 30 MB.

The system journal is already capped: on our 25 GB Ubuntu server, journald limits itself to 2.3 GB, a tenth of the filesystem. It was using 15 MB.

Windows: updates need room

Our Windows Server 2022 image dated from 2022, so we brought it up to date. Used space went from 12.6 GB to 20.8 GB while the first cumulative update installed, and reached 24.5 GB after the second. Windows keeps the old version of every system file an update replaces. Cleaning those out brought it back to 14.6 GB, and a fresh server from the updated image now starts at 14 GB. Keep at least 10 GB free for the next update. The Windows update guide shows the cleanup commands.

What to choose

What you runDisk that's comfortablePlan
A bot, a VPN, a small static site15 GBNano, $3/mo
A Docker stack with a few images25 GBMicro, $5/mo
WordPress with a database and uploads, several stacks35 GBSmall, $8/mo
Bigger databases, many images, local backups45 GBMedium, $12/mo
Windows Server 202250–60 GBWindows-Small, $11/mo

Two rules make any of these last longer: cap container logs before you deploy, and copy backups off the server instead of keeping them on its disk. If a server is already full, our guide to freeing up disk space works through it step by step. For the memory side of sizing, see how much RAM a VPS needs. All plans are on the VPS page, and payment is in USDT, USDC or ETH on Base, Ethereum or Polygon.

FAQ

Is 15 GB enough for a VPS?

For a bot, a VPN or a small site, yes. A fresh Ubuntu 24.04 server uses 2.7 GB of it and Alpine only 153 MB. It gets tight once you add Docker: eight common images took 3.9 GB on our test server. With Docker, start at 25 GB.

How much disk does Windows Server need?

A fresh server from our Windows Server 2022 image uses 14 GB. Updates need room on top of that: while our image caught up on four years of them it grew to 24.5 GB, and a cleanup brought it back to 14.6 GB. That's why our Windows plans start at 50 GB, which leaves about 35 GB for your programs and files.

What fills a VPS disk most often?

Container logs with no limit, unused Docker images, the package cache, old kernels, and backups that are kept on the same disk. The first is the fastest: one chatty test container wrote 6 MB of logs in 30 seconds.

Can I add more disk later?

Yes, by moving to a bigger plan. Each step up the Linux plans adds 10 GB of disk and more RAM. Before you upgrade, see whether a cleanup is enough: on our test server it freed 4.1 GB of Docker images in one command.

How do I see what is using my disk?

Run df -h / for the total and sudo du -xh --max-depth=1 / | sort -h for the biggest folders. If you use Docker, docker system df shows how much its images, containers and volumes take.

Comments

No comments yet. Be the first.

Leave a comment

Comments are moderated before they appear.