SSD Nodes Learn Hosting plans →
Guides Matt ConnorBy Matt Connor

What Is a VPS? A Plain-English Answer

A VPS is a private server built with virtual machines or containers on shared hardware. Learn what root access gets you, and where the limits are.

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 allocation, your own disk space, an IP address, and administrator access to install software within the plan's limits. It runs all the time, and public-facing plans answer on an 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 gives you administrator access to your server environment. What is already set up, and what you can change, depends on the image, the virtualisation technology and the plan.

What the hypervisor slices, and what it shares

On a virtual-machine VPS, 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), Xen, VMware ESXi and Microsoft Hyper-V do this job. Container VPSs such as OpenVZ instead use a virtualisation layer in the host's operating system kernel, without a separate guest kernel.

Memory and disk are divided by space. The processor is divided by time. That one difference explains most of what surprises people later. Assigned memory is not automatically a reservation of physical RAM: KVM supports memory overcommit, and the host can swap guest memory. 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 schedules which guest runs next.

One command identifies the virtualisation it can detect.

systemd-detect-virt
uname -r

systemd-detect-virt prints kvm on a KVM VPS, which means a full hypervisor booted a kernel that belongs to you alone. It prints lxc or openvz for those container technologies, where your server is a fenced-off area inside the host's own operating system and the kernel is shared with other containers on the box; container-other means it detected another container environment. It prints none when it detects no virtualisation. That difference has real consequences, because a shared kernel is a kernel you cannot change. In a shared-kernel container, loading modules is controlled by the host, so an in-kernel feature such as the WireGuard VPN module requires host support. In a shared-kernel container, uname -r normally reports the host's kernel release, but container runtimes differ: gVisor runs containers without sharing the host kernel, and its official example reports 5.15.0-gvisor. On a KVM server the same command shows a kernel installed inside your own guest, and you upgrade or replace it the way you would on any other machine.

What does virtual mean here?

Because the server is made of software, provisioning does not require someone to rack a new physical machine for you. Nobody racks hardware for you. It is built from a template image, so a rebuild puts a clean Ubuntu back, but it also erases the existing disk contents. 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 root filesystem, your own user accounts and your own process list; a virtual-machine VPS also gets its own kernel, while an OpenVZ container shares the host's kernel. 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. Virtual machines run separate operating systems, while shared-kernel containers isolate their users and programs inside one operating system. The privacy stops at the host itself, though: whoever runs the hypervisor can read your guest's memory whenever they like, and closing that last gap takes the encrypted-memory hardware described in confidential computing on a VPS.

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 an illustrative mid-range plan, used below as the running example. These figures are an example, not a quote or a dated market survey.

ChartAn illustrative mid-range VPS plan
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 a virtual processor that the hypervisor schedules on the host's processors. Unless the plan says dedicated, it is a share of that thread rather than a reservation. Inside the server, nproc normally prints 4. It counts the processors available to the current process; CPU affinity and supported cgroup CPU quotas can lower it, while OMP_NUM_THREADS and OMP_THREAD_LIMIT set its minimum and maximum returned values respectively, and nproc --all counts every installed one. 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. The plan specifies a memory allocation or limit, but that alone does not guarantee reserved physical RAM on the host. free -h reports usable memory in binary units, with the kernel and reserved memory regions excluded, so compare the provider's GB or GiB units before judging the difference. Additional memory beyond your allocation depends on the plan and virtualisation configuration.

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 / reports the root filesystem in binary units, so its displayed size differs from a disk advertised in decimal GB and also excludes space used by other partitions and filesystem metadata; the available 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 specified by the plan. 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 and accept traffic on ports allowed by your firewall and the provider's network policy; reverse DNS settings also depend on the provider. 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 (by default the kernel reserves those for root or processes with CAP_NET_BIND_SERVICE, so a non-root process with that capability can bind to port 80 without lowering net.ipv4.ip_unprivileged_port_start), read and edit system files, and destroy the system with one careless command; loading modules and replacing the kernel require control of the kernel, which shared-kernel containers do not provide. 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

On an Ubuntu image using systemd, systemctl status nginx should print active (running) after installation, and the server's IP address in a browser should show the default nginx page if port 80 is reachable. 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 access arrives through the login method configured for the server, such as an SSH key or a password. 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. Watch the SSH service's logs with journalctl -u ssh -f for login attempts.

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 st column is steal time. Brief steal-time spikes occur on shared hosts. A steady double-digit figure while your own processes are idle usually means the host is oversubscribed, and no tuning inside your server will fix it, because the waiting happens outside your server. Hostinger distinguishes CPU steal from its CPU credit system; its CPU credit policy restores full capacity after usage drops and credits rebuild to the recovery threshold. Read your plan's CPU policy before you blame the neighbours. Benchmarking a VPS properly shows how to prove that before you raise it with the provider. Steal is reported by KVM and Xen guests. In containers, the reported value depends on how CPU statistics are exposed and is not a reliable measure of the container's CPU throttling.

The memory is fixed, and the ceiling is abrupt. When memory is exhausted and reclaim cannot free enough, 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. Look in the kernel log for the reason; a container's access to that log depends on the host's configuration. Check whether swap is configured before adding a swap file, and check the host's rules on a container VPS.

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 product: a VPS with a GPU.

There is exactly one of it. A VPS is a single machine. A host fault can take your server down; whether the provider migrates or restarts it elsewhere depends on the service, and application failover still needs to be arranged. Backups are your job, so restic backups from a VPS belongs on the setup list. A provider snapshot is convenient, but its protection depends on where it is stored and how it is retained; keep an independent backup too.

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 a guest with virtual hardware and its own operating system kernel; a VPS is a rented server product built either as a virtual machine or as a container, usually with 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 reserved for you, with no other customers' guests sharing it; you can install a hypervisor yourself. It is an option 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 control of the hardware and a residential connection that many services treat with suspicion. It also gives you the host itself, so a guest can run a hypervisor of its own once you enable nested virtualization in Proxmox, something a rented VPS must also support explicitly. Proxmox against a VPS weighs power, noise and uptime against a monthly fee.

What do people run on a VPS?

The honest answer is software that fits the VPS's operating system, architecture, resources and provider rules. 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. Mail needs a policy check first: DigitalOcean, for example, blocks SMTP ports 25, 465 and 587 on Droplets by default. Network services listen on ports, 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 server that a company rents to you, with an operating system, usually a public IP address, and a price attached. It can be a virtual machine with its own kernel or a container such as an OpenVZ VPS that shares the host's kernel. 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, compare the price and responsibilities of a managed plan or a control panel.

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; its binary units also differ from decimal GB, so check which units the provider uses. Compare the allocation, units and reserved memory before judging the gap. An unexplained shortfall 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. Brief steal-time spikes occur on shared hardware. A sustained double-digit figure while your own load is low usually 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. CPU usage caps also limit performance, and recovery follows the provider's policy, including rebuilding CPU credits where required.

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 the provider's SMTP policy, as well as the mail server itself.

Was this article useful?