VPS Monitoring: What to Watch on a Small Server (and How)
Good vps monitoring does not start with a metrics platform. If you run one small virtual private server — a blog, a side project, a staging box — you can keep it healthy with a handful of terminal commands and ten minutes a week. This guide covers the four signals worth watching, what normal looks like on a small server, and the simplest server monitoring tools for each job.
You do not need Prometheus yet
A small VPS has a simple failure model. It runs out of something (CPU, memory or disk), or a process that should be running stops. Both are easy to spot early if you know your baseline — and easy to miss if you rely on nothing at all.
Full metrics stacks are excellent, but they cost time to set up, CPU to run and disk to store. On a two-core box hosting a handful of sites, the monitoring can end up consuming a noticeable share of what it watches. Start with the built-in tools. Graduate to a platform only when you have a reason.
The four signals worth watching
CPU
Load average tells you how many processes are waiting for the processor. A load of 1.0 on a one-core server means the CPU is saturated; on a four-core server it is a quarter busy. Occasional spikes are fine — a backup, a build, a traffic surge. What matters is sustained load: if the one-minute, five-minute and fifteen-minute figures all sit at or above your core count for hours, something is wrong. Usually it is a runaway process, a slow database query or an attack hitting a public endpoint.
Memory
Linux uses spare memory for caches, so high memory usage on its own is not alarming. The number to watch is swap. If a server is steadily reading and writing swap, it has run out of real memory and performance collapses. A little swap used and untouched is harmless; swap activity under normal load means you need less software on the box or more memory in it.
Disk
Disk fills silently. Log files grow without bound, mail queues bloat when a script fails, and one forgotten backup archive can take the rest. The check takes seconds:
df -h
Watch the Use% column on your root partition. Anything above about 85 per cent deserves a look at what is growing; at 100 per cent, databases stop writing and logs lose entries. Check monthly and you will almost never be surprised.
Services
The classic small-server failure is not dramatic: a process dies overnight — a web server after a bad reload, a database after an update — and nothing restarts it. A single command tells you what should be running and what is not:
systemctl --failed
The terminal tools every admin should know
Five commands cover nearly all routine vps monitoring on a Linux box:
htop
An interactive view of CPU, memory and processes. Run it when the server feels slow and the culprit is usually obvious at the top of the list.
free -m
Memory in megabytes, including swap. Read the available column, not free — it reflects what applications can actually use.
journalctl -u nginx --since today
Recent logs for a named service. Replace nginx with whatever died. This is where error messages live.
That is the whole toolkit for a small server: htop for CPU and processes, df -h for disk, free -m for memory, and systemctl with journalctl for services. Each takes seconds to run.
Heavier options, and when they earn their keep
When you outgrow the terminal — several servers, a team, or a need for history and alerts — dedicated server monitoring tools are the right answer. A few worth knowing, in order of weight:
- Uptime Kuma — lightweight self-hosted status checking with notifications. Quick to set up and easy on resources.
- Netdata — per-second metrics with dashboards out of the box. More detail, a little more overhead.
- Prometheus and Grafana — the full platform: collection, storage, alerting and flexible dashboards. Powerful, but real work to install and maintain. On a small VPS it usually deserves its own machine.
Pricing and features for these change often, so check their sites for current details. The honest rule: adopt one when "log in and look" stops scaling, not before.
A glanceable view across several servers
If you manage more than one or two boxes, even the quick checks become friction — open a terminal, connect, run the command, repeat. This is where a desktop panel helps. Local Panel connects to each server over SSH and shows live CPU, memory, disk and services in one window, with no agent installed on the server and nothing leaving your machine.
Monitoring pairs naturally with two of its other screens. Server Diff compares two servers side by side, so when one box behaves oddly you can see exactly what diverged. And the Commands screen lets you schedule upkeep — a weekly disk check, a log rotation reminder, a cache flush — so routine care stops depending on your memory.
When a number looks wrong
A short, calm checklist works for almost every surprise:
- Confirm it is real — re-run the command; one-off spikes often pass.
- Find the process —
htopshows what is consuming CPU or memory. - Read the logs —
journalctlfor the failing service usually names the cause. - Check what changed — a recent update, deploy or cron job is the most common culprit.
- Free resources if needed — clear old logs, prune unused packages, restart the stuck service.
Most incidents on a small server are boring once you look: a full disk, a dead process, a forgotten job. Watching four signals, weekly, catches nearly all of them early.
If you are setting up a server from scratch, you may also like our guides to deploying a PHP website to a VPS and to choosing a VPS control panel in 2026.
Want monitoring without the terminal habit? Local Panel is a one-off payment of £59.99, or start free with Local Panel Lite — free forever, on macOS, Windows and Linux.