Back to blog
11 min read

What Is a VPS? How It Works and What You Can Run on One

What is a VPS? A virtual machine with its own OS, root access, and a set amount of RAM. How it works, what to run on one, and RAM needs for 6 workloads.

TL;DR:

  • A VPS (virtual private server) is a virtual machine with its own operating system, public IP address, and a set amount of vCPU, RAM, and storage on a shared physical server. You log in as root over SSH on Linux or as administrator over Remote Desktop on Windows Server.
  • A hypervisor such as KVM, in the Linux kernel since version 2.6.20, gives each VPS a fixed amount of RAM and disk and schedules its vCPUs on the host's physical cores.
  • Common workloads: websites, Docker apps, n8n, Minecraft and Palworld servers, a personal WireGuard VPN, and AI agents such as OpenClaw.
  • Size by RAM: Ubuntu 24.04 cloud images need at least 1 GB, OpenClaw recommends 2 GB or more, and the Palworld server guide recommends 16 GB.
  • A VPN is an encrypted network tunnel. A VPS is a server, and a VPN server is one of the things it can run.

A VPS, short for virtual private server, is a virtual machine that a hosting provider runs on a physical server and rents to you. It has its own operating system, public IP address, and a set amount of vCPU, RAM, and storage, and it stays online when your own computer is off.

Applies to: Ubuntu 24.04 LTS and Ubuntu 26.04 LTS · OpenSSH 9.6 and 10.2 · checked October 2026

What is a VPS server and how does it work?

A physical server, called the host, runs a hypervisor: software that creates virtual machines and keeps them apart. KVM, built into the Linux kernel, is a common choice, and Xen, VMware ESXi, and Microsoft Hyper-V do the same job. Each VPS gets virtual processors, memory, a disk, and a network interface, and its operating system boots on them as it would on a physical machine.

The host's hardware is split in different ways:

  • RAM is a fixed amount per VPS. On Linux, when processes need more than is free, the out-of-memory (OOM) killer ends one of them.
  • Storage is a virtual disk on the host's drives. NVMe vs SSD for cloud servers explains why the drive type matters.
  • vCPUs are scheduled by the hypervisor on the host's physical cores, which the other virtual machines on that host also use.
  • Network traffic leaves through the host's network interface. Plans list a network speed and a monthly transfer allowance.

Each VPS runs its own kernel, file system, and processes, and other customers on the host cannot read its files. Container products built on OpenVZ or LXC share the host's kernel instead, so you cannot load kernel modules. The systemd-detect-virt command prints kvm on a KVM virtual machine and openvz or lxc inside a container.

VPS vs shared hosting, dedicated servers, and cloud instances

The options differ in what you rent and who runs the operating system.

TypeWhat you rentWho runs the OSRoot or admin access
Shared hostingAn account on a server shared by many websites, usually with a control panelThe providerNo
VPSA virtual machine with its own OS, IP address, vCPU, RAM, and storageYouYes
Dedicated serverA whole physical serverYouYes
Cloud instanceA virtual machine inside a platform of services such as load balancers and managed databasesYouYes

Shared hosting fits a small PHP and MySQL website on the provider's stack. A VPS fits software that needs its own packages, open ports, or background processes. When to upgrade from shared hosting to a VPS lists the signs. A dedicated server removes the hypervisor and gives you the whole machine. A cloud instance is also a virtual machine; the difference is the platform around it.

VPS vs VPN

A VPN (virtual private network) is an encrypted tunnel between your devices and another network. A VPS is a server. A VPN server such as WireGuard is one thing a VPS can run: your laptop and phone connect to it, and their internet traffic exits through the server's IP address. WireGuard has been part of the Linux kernel since version 5.6. How to Set Up a WireGuard VPN Server on Ubuntu 24.04 covers the setup.

What you can do with a VPS

A VPS runs any software that supports its operating system and fits in its RAM. Common workloads and their setup guides:

How much vCPU, RAM, and storage you need

The table lists vendor requirements and one published CPU benchmark. "Not published" means the vendor gives no figure.

WorkloadvCPURAMStorageSource
Ubuntu Server 24.04, cloud imageNot published1 GB minimum, 3 GB suggested4 GB minimum, 25 GB suggestedUbuntu Server docs
OpenClaw gateway with an API model1 minimum, 1 to 2 recommended1 GB minimum, 2 GB or more recommendedAbout 500 MBOpenClaw FAQ
n8n, one instance with PostgreSQL2 in n8n's benchmark4 GB in n8n's benchmarkNot publishedn8n performance docs
Minecraft Java server (Paper)Not published4 GB Java heap in Paper's start command, plus OS memoryNot publishedPaperMC docs
Palworld dedicated server4 cores recommended16 GB recommended; 8 GB boots with a higher out-of-memory riskSSD recommendedPalworld server guide
Local model on CPU, 4B to 9B (Ollama)16 in the benchmark4.2 to 7.3 GiB resident memory at an 8K promptNot publishedCPU LLM benchmark

Size RAM first, because memory is a hard limit. A Minecraft server with a 4 GB heap needs a plan with more than 4 GB, since Ubuntu and the Java runtime use memory outside the heap.

The vCPU count and clock speed set how fast work finishes, which shows in game server tick rates and local model tokens per second. AMD EPYC VPS explained covers the processor side. On a running server, free -h shows memory use and df -h / shows disk use.

Your first login to a new VPS

The first login on a Linux VPS is usually as root over SSH. Create an Ed25519 key pair on your computer first; How to Generate an SSH Key on Windows, macOS, and Linux covers each system.

ssh-keygen -t ed25519 -C "YOUR_EMAIL"

Add the public key, the contents of ~/.ssh/id_ed25519.pub, when you create the server. Then connect:

ssh root@YOUR_SERVER_IP

Replace YOUR_SERVER_IP with the server's public IP address, such as 203.0.113.10, and type yes to accept the host key on the first connection. On the server, check what the plan gives you:

nproc
free -h
df -h /
systemd-detect-virt

nproc prints the vCPU count and df -h / the disk size. free -h shows a little less RAM than the plan lists, because the kernel reserves part of it at boot.

Create a non-root user with sudo privileges and copy your key to it. adduser asks for a password, which sudo requests later.

adduser deploy
usermod -aG sudo deploy
install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
install -m 600 -o deploy -g deploy /root/.ssh/authorized_keys /home/deploy/.ssh/

Log out, connect with ssh deploy@YOUR_SERVER_IP, and update the packages:

sudo apt update && sudo apt upgrade -y

If the upgrade asks about a changed configuration file such as sshd_config, keep the version currently installed. If the file /var/run/reboot-required exists afterwards, run sudo reboot and connect again once the server is back up.

Then turn on the Uncomplicated Firewall (UFW). Allow OpenSSH before you enable UFW so your session stays open, and type y when UFW asks to confirm:

sudo ufw allow OpenSSH
sudo ufw enable

Docker publishes container ports through its own firewall rules, which UFW does not filter, so bind container ports to 127.0.0.1 unless they must be public. The Docker tutorial covers this.

The deploy user now has a password, so check that SSH accepts keys only:

sudo sshd -T | grep -E '^passwordauthentication '

The output should read passwordauthentication no. If it reads yes, the SSH key tutorial shows how to turn password login off.

On a Windows Server VPS, connect with Remote Desktop Connection on Windows or Windows App on macOS, then follow How to Secure RDP on Windows Server.

Where to run a VPS

Choose a location close to your users or players, since network latency grows with distance. Pick a plan with more RAM than the table lists for your workload.

Arct Cloud plans come in three tiers: Cost Optimized, General Purpose, and High Performance. The smallest Cost Optimized plan, cvm.pico, has 1 vCPU, 1 GB RAM, and 15 GB NVMe storage. Every plan includes NVMe storage, network up to 25 Gbps, and DDoS protection. The acceptable use policy allows a personal VPN for lawful use only and does not permit sustained full-CPU load.

VPS plans and specs lists every tier. The locations page shows where servers run.

FAQ

Is VPS the same as VPN?

No. A VPN is an encrypted tunnel that carries network traffic, and a VPS is a server with its own operating system. You can run a VPN server such as WireGuard on a VPS and route your own devices through it.

What is a VPS hosting server?

A VPS hosting server is a virtual machine that a hosting provider runs on a shared physical server and rents to you. It has its own operating system, public IP address, and a set amount of vCPU, RAM, and storage, and you manage it over SSH or Remote Desktop.

Is a VPS the same as a virtual machine?

A VPS is a virtual machine that a provider rents to you with an operating system, a public IP address, and network access set up. The technology is the same, and the term virtual machine also covers guests on your own computer.

How much RAM do I need for a VPS?

At least 1 GB, the minimum for an Ubuntu 24.04 cloud image. OpenClaw recommends 2 GB or more, Minecraft with a 4 GB Java heap needs more than 4 GB, and the Palworld server guide recommends 16 GB. Add memory for any database, Docker containers, or local AI model you plan to run.

Can a VPS run Windows?

Yes. A VPS can run Windows Server, which you manage over Remote Desktop instead of SSH. On Arct Cloud, Windows Server needs a plan with 2 or more vCPU and deploys in 2 to 4 minutes, depending on the image size.

Next steps

Arct Cloud Linux images deploy in under 30 seconds with root SSH on every plan. Compare plans.