IAnswerable

Real-Time Server Metrics with Netdata

01 Oct 2026

Netdata gives you a full per-second metrics dashboard from one install command. It also happily eats 300MB+ of RAM on a 1GB VPS if you leave it on defaults. Both things are true, and the fix for the second one takes five minutes.

Install

curl -Ss https://get.netdata.cloud/kickstart.sh | sh

It starts immediately, binds to port 19999, and starts collecting CPU, memory, disk I/O, network, and per-process metrics without any config. Open http://your-server-ip:19999 and you’ve got a live dashboard.

Don’t leave that port open to the internet — put it behind your reverse proxy with basic auth, or bind it to localhost and reach it over an SSH tunnel:

ssh -L 19999:localhost:19999 you@your-server

Why it eats RAM

Netdata’s default database engine keeps a long retention window in memory, and by default it also runs every collector plugin it can find — Docker, MySQL, Nginx, disk SMART data, dozens of others — whether or not you use them. On a small VPS this adds up fast.

Check what it’s actually using:

systemctl status netdata

or look at the netdata process in top directly.

Cut the memory footprint

Edit /etc/netdata/netdata.conf (copy the default first if you haven’t customized it: sudo /etc/netdata/edit-config netdata.conf):

[global]
    memory mode = dbengine
    page cache size = 32
    dbengine multihost disk space = 256

page cache size and dbengine multihost disk space are both in MB. Dropping them from Netdata’s defaults (which assume a beefier box) to something in this range is usually enough on a 1-2GB VPS.

Then disable collectors you don’t need. Edit /etc/netdata/netdata.conf under [plugins]:

[plugins]
    apps = yes
    proc = yes
    cgroups = no
    diskspace = yes
    go.d = no

go.d in particular ships dozens of application collectors (Postgres, Redis, Elasticsearch, and more) that all probe for services on startup even if you never installed them. Turn it off unless you’re actually monitoring one of those.

Restart to apply:

sudo systemctl restart netdata

What to actually watch

Netdata’s default dashboard has more charts than you need day to day. The ones worth a glance:

Panel What it tells you
System Overview → CPU Sustained high load vs. a spike
System Overview → RAM Available memory, swap usage
Disk → Space usage Runway before you’re out of disk
Network → bandwidth Unexpected traffic (bot, attack, misconfigured client)

Alerts, not staring at a tab

You won’t watch the dashboard at 3am. Netdata ships health checks out of the box (disk almost full, load too high, RAM pressure) and can send them to Slack or a webhook:

# /etc/netdata/health_alarm_notify.conf
SEND_SLACK="YES"
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/XXX"
DEFAULT_RECIPIENT_SLACK="#alerts"

That turns Netdata from “a dashboard you forget to check” into an actual early warning system, without adding a separate alerting stack.

If a 1GB VPS still feels tight after tuning, drop dbengine multihost disk space further before you consider swapping Netdata for something lighter — the default config is built for servers with room to spare, not the box you’re actually running.