SSD Nodes Learn 🎉 VPS from $4.99/mo
Guides Matt ConnorBy Matt Connor

What Is a VPS? A Plain-English Answer

A VPS is one physical server sliced by a hypervisor into private machines with their own kernel and root login. What that gets you, and where it stops.

What is a VPS?

A VPS (virtual private server) is a slice of one real computer in a data centre, rented to you as if it were a whole machine of your own. Software on that computer divides it into several independent servers, and you get one of them: your own memory, your own disk, your own IP address, and a root login that lets you install anything you want. It runs all the time, and it answers on a public address on the internet.

Take the three words apart and the product explains itself. Server is a computer that stays on and answers requests over the network. Virtual means software made it. Your server is a partition of a larger physical machine. Private means that partition is yours alone. Your files and your running programs are invisible to whoever rents the slice beside yours.

If you have never had root on anything, the last part is the one that matters most. A VPS is the first kind of hosting where you are the administrator of the machine. Nothing is set up for you, and nothing stops you either.

What the hypervisor slices, and what it shares

The program that does the dividing is called a hypervisor. It runs on the physical machine, which is called the host. To each customer it hands a set of pretend hardware: a processor, a block of memory, a disk and a network card. An operating system is installed onto that pretend hardware and boots as if it owned a real computer. That guest system is your VPS. KVM (kernel-based virtual machine) is the usual hypervisor on Linux hosts, and Xen, VMware ESXi and Microsoft Hyper-V do the same job.

Memory and disk are divided by space. The processor is divided by time. That one difference explains most of what surprises people later. Memory assigned to you is memory no other guest can take. Your disk is a file or a logical volume on the host's storage, and it stays yours until you delete it. Your virtual cores are queues onto the host's real cores, and the hypervisor decides, thousands of times a second, which guest runs next.

One command tells you which kind of virtualisation you bought.

systemd-detect-virt
uname -r

systemd-detect-virt prints kvm on a normal VPS, which means a full hypervisor booted a kernel that belongs to you alone. It prints lxc, openvz or container on container virtualisation, where your server is a fenced-off area inside the host's own operating system and the kernel is shared with every other customer on the box. It prints none on bare metal. That difference has real consequences, because a shared kernel is a kernel you cannot change. You cannot load a module, so an in-kernel feature such as the WireGuard VPN module fails with Operation not supported, and uname -r reports a version you did not choose and cannot upgrade.

What does virtual mean here?

Because the server is made of software, it exists about a minute after you pay for it. Nobody racks hardware for you. It is built from a template image, so a rebuild puts a clean Ubuntu back in a couple of minutes, and a mistake that would ruin a physical install costs you an afternoon at most. Most provider panels can also snapshot the disk before you try something risky, resize the plan with a reboot, and move your guest to different hardware when the host underneath needs work.

The price follows from the same fact: one physical machine is paid for by many customers at once, which is why a VPS costs what it costs compared with renting a whole server.

The cost sits right next to the benefit. The hardware underneath is shared, so a busy neighbour is your problem too. The section on limits below has the command that measures it.

What does private mean here?

Private means isolation, and it is worth being concrete about how much. You get your own kernel, your own root filesystem, your own user accounts, your own process list, your own firewall rules and your own IP address. Another customer on the same host cannot list your processes or read your files, because their guest has no route into your memory or your virtual disk. They are two separate operating systems that happen to share a power supply.

Shared hosting works the other way. You get a directory on a machine that serves hundreds of other websites, a control panel, and whatever software the provider chose to install. There is no apt install there, because installing a package changes the whole machine, and the whole machine is not yours to change. Shared hosting against a VPS goes through the trade in detail. In one line: shared hosting rents you an account, and a VPS rents you a computer.

One VPS spec sheet, line by line

Every VPS is sold as a short list of numbers. Here is a mid-range plan of the kind providers advertise, used below as the running example. These are typical published figures as of August 2026, not a quote.

ChartA typical mid-range VPS plan, as advertised
The data behind this chart
[
  {
    "plan": "Example mid-range VPS",
    "vcpu_cores": 4,
    "ram_gb": 16,
    "nvme_gb": 160,
    "bandwidth_tb": 8,
    "ipv4_addresses": 1
  }
]

That single line is the whole product. Read it from left to right.

4 vCPU. A vCPU (virtual central processing unit) is one thread of the host's processor that the hypervisor schedules for you. Unless the plan says dedicated, it is a share of that thread rather than a reservation. Inside the server, nproc prints 4, and lscpu shows a model name that may be the real host CPU or a generic QEMU model, depending on how the host was configured.

16 GB of RAM. Memory is a hard reservation, and it is also a hard ceiling. free -h reports a little less than you bought, near 15Gi on a 16 GB plan, because the kernel and several reserved memory regions are subtracted before Linux counts what is usable. Nothing borrows from the host when you run out.

160 GB of NVMe. NVMe (non-volatile memory express) is how the drive attaches inside the host, and it is far faster than the SATA SSDs older plans used. Your share appears as a virtual disk, normally /dev/vda under KVM. df -h / shows a little under 160 GB, and the free figure is lower again, because ext4 holds back 5 percent of the filesystem for root by default. What the SSD in an SSD VPS actually means and how to verify the disk you were sold both go deeper.

8 TB of transfer. This is data moved per month, usually counted outbound only. It is a volume, and the port speed is a separate number, often 1 Gbit/s. Passing the allowance brings a charge or a throttle depending on the provider, so read that line before you host video. sudo apt install vnstat gives you your own count with vnstat -m, starting from the day you install it.

1 IPv4 address. The address is yours for as long as you rent the server. You can point a domain at it, accept traffic on any port, and usually set its reverse DNS record in the provider panel, which mail servers check. Very cheap plans sometimes put many customers behind one shared address, which is called a NAT VPS, and then ip -4 addr show reports a private address such as 10.0.0.5 and inbound ports are limited.

Four commands confirm what you were given.

nproc
free -h
df -h /
ip -4 addr show

If any of those disagrees with the spec sheet by more than the rounding described above, that is worth a support ticket before you build anything on the machine.

What root access means in practice

Root is the administrator account on Linux, and its user ID is 0. Run id -u and you see 0 when you are root. Root can install packages for the whole system, open ports below 1024 (the kernel reserves those for privileged processes, which is why an ordinary user cannot start a web server on port 80), load kernel modules, replace the kernel, read and edit any file on the disk, and destroy the system with one careless command. Nobody undoes that for you.

The practical difference is short. On shared hosting you open a support ticket to ask for a piece of software. On a VPS you type this.

sudo apt update
sudo apt install -y nginx
systemctl status nginx

systemctl status nginx should print active (running) within a second or two, and the server's IP address in a browser should show the default nginx page. If the status prints failed, run journalctl -u nginx -n 50 and read the last lines, because the service records why it refused to start. The usual reasons are a typo in a config file, or another program already listening on port 80.

Root is also your whole security boundary, and it arrives as a password the provider generated. The first session on a new server is not the moment to install applications. Create an ordinary user, move your login to an SSH key, and put a firewall in front of the ports. The first ten minutes on a new VPS is that checklist in order, SSH key basics covers the login itself, ufw firewall basics covers the ports, and least privilege users covers what your services should run as afterwards. A server with password login and no firewall collects thousands of guessing attempts a day, and you can watch them arrive with journalctl -u ssh -f.

What are the limits of a VPS?

The processor is shared, and you can measure the sharing. Steal time is the share of time your virtual CPU was ready to run and got nothing, because the hypervisor handed the physical core to another guest.

vmstat 1 5

The last column, st, is steal time. One or two percent in bursts is normal on any shared host. A steady double-digit figure while your own processes are idle means the host is oversubscribed, and no tuning inside your server will fix it, because the waiting happens outside your server. Benchmarking a VPS properly shows how to prove that before you raise it with the provider. Steal is reported by KVM and Xen guests. On container virtualisation it stays at zero and tells you nothing.

The memory is fixed, and the ceiling is abrupt. When an allocation fails, the kernel's OOM (out of memory) killer chooses a process and ends it with SIGKILL.

sudo dmesg -T | grep -i "out of memory"

One line explains an outage that otherwise looks like a mystery:

Out of memory: Killed process 2412 (mysqld) total-vm:2183104kB, anon-rss:1897224kB, file-rss:0kB

The application's own log usually says nothing at all, because SIGKILL gives the process no chance to write anything. The reason lives only in the kernel log. Many VPS images ship with no swap file, which makes the ceiling harder still, so adding a small swap file is a common first change.

The disk is fast and it is shared. The host's NVMe is quick, and your slice of it competes with every other guest for input and output operations. A benchmark taken at a quiet hour is not a promise about the same machine at peak.

The hardware is not yours to touch. You cannot plug anything in. No USB device, no capture card, and no graphics card unless the plan passes one through on purpose, which is a separate and more expensive product: a VPS with a GPU.

There is exactly one of it. A VPS is a single machine. If the host has a fault, your server is down until the host returns, and nothing fails over unless you built the failover yourself. Backups are your job, so restic backups from a VPS belongs on the setup list. A provider snapshot is convenient, and it is not a backup, because it sits on the same infrastructure as the thing it is protecting.

Support stops at the hypervisor. On an unmanaged plan the provider keeps the hardware, the network and the virtualisation layer healthy. Everything from the operating system upward is yours, including security updates. Managed against unmanaged hosting draws that line, and unattended upgrades on Ubuntu is the smallest useful thing to switch on.

How a VPS compares to the things it gets confused with

A virtual machine is the general idea, and a VPS is one commercial form of it: a virtual machine rented by the month, with an operating system, a public address and a network already attached. A VPC (virtual private cloud) is a private network inside a larger cloud, and servers live inside it, so it answers a different question entirely. VPS against VM against VPC separates the three terms properly.

A dedicated server is the entire physical machine, with no hypervisor and no neighbours. It costs several times more per month, and it is the right answer once steal time or disk contention is your real bottleneck. VPS against a dedicated server lists the decision points.

A VPN (virtual private network) shares two letters with VPS and nothing else. A VPN is an encrypted tunnel between machines. A VPS is a machine, and one popular use for it is running your own VPN, which is where the confusion starts. VPS against VPN settles the two words.

Hardware you own, or a hypervisor such as Proxmox on a machine at home, gives you more resources for the money and a residential connection that many services treat with suspicion. Proxmox against a VPS weighs power, noise and uptime against a monthly fee.

What do people run on a VPS?

The honest answer is anything that runs on Linux. Common choices are a website with its database, a private VPN, a game server, a status monitor, a mail server, a media library, or a coding agent that keeps working while your laptop is closed. Everything you run listens on a port, so what a port is on Linux is the next concept worth learning, and what you can do with a VPS has the longer list with the resource cost of each.

FAQ

Is a VPS the same thing as a virtual machine?

A VPS is a virtual machine that a company rents to you, with an operating system, a public IP address and a monthly price attached. The underlying technology is identical. The words cover different ground: "virtual machine" describes any guest running on a hypervisor, including one on your own laptop, while "VPS" describes the product you buy. A VPC is a third thing again, a private network inside a cloud provider rather than a server.

Do I need to know Linux to use a VPS?

You need a little, and you can learn the rest as you go. The starting set is connecting with ssh, moving around with cd and ls, editing a file with nano, installing software with apt, and reading logs with journalctl. An unmanaged VPS assumes you will handle the updates and the firewall yourself. If that is more than you want, a managed plan or a control panel hands part of it back for a higher monthly price.

Why does my VPS show less RAM than the plan promised?

Linux reports usable memory, and the plan advertises assigned memory. The kernel image and several reserved memory regions are subtracted before the total in free -h is calculated, so a 16 GB plan normally reports about 15Gi. A gap of a few hundred megabytes is expected. A gap of several gigabytes is not, and that one is worth a support ticket.

What is steal time, and should I worry about it?

Steal time is the percentage of time your virtual CPU was ready to run but had to wait, because the hypervisor gave the physical core to another guest. The st column of vmstat 1 shows it. One or two percent in bursts is normal on shared hardware. A sustained double-digit figure while your own load is low means the physical host is oversubscribed, and the fix is a different host or a different plan, because nothing inside your server controls the host's scheduler.

Can I run more than one service on a single VPS?

Yes. That is the point of having root: the machine is general purpose, and services coexist as long as they fit in memory and each one listens on its own port. Memory is usually the first limit you meet, and disk speed the second. Mail is the awkward exception, because delivery depends on the reputation of your IP address, and a fresh address at a hosting provider often starts out distrusted by the large mail systems.