How much RAM a VPS needs depends on the peak working set that must stay in memory without sustained swapping, out-of-memory events, or workload instability. For many lightweight Linux workloads, 2–4 GB is a practical starting range; 8 GB becomes more useful for databases, Docker stacks, Windows workloads, and multi-service applications; 16 GB or more should follow a measured need rather than a default rule.
Raff Technologies supports 3,000+ customers and 15,000+ VMs. In infrastructure reviews, the strongest reason to add VPS RAM is not a fixed utilization percentage. It is memory pressure that occurs at the same time as swap activity, OOM events, restarts, database degradation, failed deployments, or user-visible latency.
A static site, WordPress installation, Node.js API, PostgreSQL database, Docker host, and Windows server can consume memory very differently even when traffic looks similar. The useful question is therefore not simply “Is 4 GB enough?” but how much memory must remain available when the busiest normal workload, maintenance tasks, and supporting services overlap?
This guide covers VPS RAM requirements from 1 GB through 16 GB and beyond. For the broader CPU, RAM, storage, and network decision, use the VM Sizing Guide. For higher memory-to-vCPU ratios, see High Memory VMs.
VPS RAM requirements at a glance
RAM tiers are useful planning baselines, not guarantees. Software versions, plugins, traffic, connection count, dataset size, runtime configuration, and concurrency can move the correct size substantially.
| VPS RAM | Reasonable starting workloads | Main risk to watch |
|---|---|---|
| 1 GB | Minimal Linux service, static site, reverse proxy, VPN, tiny utility | Little room for databases, panels, containers, or maintenance spikes |
| 2 GB | Small website, lightweight API, dev/staging, one focused application | Multi-service stacks can remove headroom quickly |
| 4 GB | Small production web app, WordPress, light Docker Compose, small database | Busy stores, several services, or heavier runtimes may exceed it |
| 8 GB | App + database + workers, several containers, WooCommerce, light Windows workload | Larger databases, more users, or memory-heavy runtimes can exceed it |
| 16 GB | Larger databases, container hosts, JVM apps, search, analytics, business software | Architecture may need separation rather than another single-VM increase |
| 32 GB+ | Large in-memory working sets, consolidated services, heavier databases | Validate whether one large VM is still the right architecture |
For an unknown Linux production workload, 4 GB can be a reasonable conservative starting point when resizing is easy, but it is not a universal production minimum. A narrow service may fit safely below it. A database, Windows workload, or multi-container application may need more from day one.
VPS RAM sizing starts with the peak working set
A VPS needs enough memory for the operating system and every service that must remain active during the busiest normal period.
That combined requirement is the working set. It can include:
- the Linux or Windows operating system;
- Nginx, Apache, IIS, or another web server;
- PHP, Node.js, Python, Java, .NET, or another runtime;
- PostgreSQL, MySQL, or another database;
- Valkey or another in-memory cache;
- containers and the container runtime;
- background workers and scheduled jobs;
- monitoring, logging, security, and backup agents;
- control-panel services;
- filesystem cache;
- temporary memory used by deployments, imports, backups, and maintenance.
A simple planning equation is:
Required VPS RAM = OS and base services + application peak working set + database and cache memory + background and maintenance peaks + operating headroom
Do not calculate from average usage alone. Include the periods when deployments, backups, imports, security scans, scheduled jobs, or traffic peaks overlap with normal application work.
Linux also makes an important distinction between free memory and available memory. Unused RAM can be used for filesystem cache and reclaimed later, so a server with little completely free RAM is not automatically undersized. MemAvailable in /proc/meminfo is more useful because it estimates how much memory can still be allocated without relying heavily on swap.
That is why “RAM usage is 80%” is not a sufficient resize rule. High usage can be healthy cache activity. A lower percentage can still hide a memory leak or destructive short-lived peak.
Is 1 GB RAM enough for a VPS?
One gigabyte can be enough for a narrow Linux workload with a small process footprint.
Typical candidates include:
- a static site;
- a lightweight reverse proxy;
- a VPN endpoint;
- a small monitoring or utility node;
- a minimal test service.
The limitation is operating headroom. Once the same VM also runs a database, multiple containers, a control panel, several workers, or memory-heavy runtime processes, 1 GB can become restrictive quickly.
Raff’s current General Purpose entry plan is 1 vCPU / 1 GB RAM / 25 GB NVMe at $4.99/month. The next memory step is 1 vCPU / 2 GB RAM / 50 GB NVMe at $8.99/month.
Use 1 GB because the workload is known to be small, not simply because it is the lowest-cost option.
Is 2 GB RAM enough for a VPS?
Two gigabytes is a practical starting point for many focused lightweight services.
Good fits can include:
- a small website;
- a lightweight API;
- a development or staging server;
- one modest application runtime;
- one small containerized service;
- a low-traffic internal tool.
Two gigabytes becomes less comfortable when several long-lived services share the machine. An application, local database, cache, queue, worker, monitoring agent, and deployment process may each appear modest but collectively remove the headroom needed for peaks and maintenance.
For a current Raff 2 vCPU example, 2 vCPU / 2 GB / 40 GB NVMe is $12.99/month. For a workload-specific discussion, see 2 vCPU / 2 GB Cloud VM Workloads.
Is 4 GB RAM enough for a VPS?
Four gigabytes is a common planning point for small production applications because it provides more room for application processes, filesystem cache, small databases, deployments, and operating overhead.
It can be a good starting fit for:
- small production web applications;
- WordPress sites with moderate plugins and traffic;
- light Docker Compose stacks;
- small databases;
- APIs that also run a modest worker or cache;
- development environments with several services.
Four gigabytes is not automatically enough for a busy WooCommerce store, large Java process, memory-heavy database, many containers, or multiple concurrent Windows users.
Raff’s current General Purpose 2 vCPU / 4 GB / 80 GB plan is $17.99/month. A 4 vCPU / 4 GB / 80 GB shape is $24.99/month when the workload needs more CPU without increasing RAM.
Is 8 GB RAM enough for a VPS?
Eight gigabytes gives substantially more room for multi-service workloads and is often where a VPS can host an application plus database, several containers, workers, and monitoring without the same memory pressure seen on smaller tiers.
Common starting fits include:
- application + database + worker stacks;
- larger WordPress or WooCommerce deployments;
- several Docker containers;
- moderate PostgreSQL or MySQL workloads;
- light Windows business workloads;
- services with larger caches or runtime heaps.
Eight-gigabyte VPS plans are commonly evaluated as a concrete buying tier, but the right choice still depends on the workload rather than the label.
Raff currently offers 2 vCPU / 8 GB / 160 GB at $27.99/month and 4 vCPU / 8 GB / 160 GB at $33.99/month in General Purpose. Choose between them based on CPU pressure, not RAM alone.
When does a 16 GB or high-RAM VPS make sense?
A 16 GB VPS or high-RAM VM becomes more useful when the workload has a larger working set while CPU demand does not necessarily need to grow at the same rate.
Examples include:
- larger PostgreSQL or MySQL databases;
- JVM or .NET applications with larger heaps;
- container hosts with several memory-active services;
- search or analytics workloads;
- application + database + worker consolidation;
- Windows business software with more simultaneous activity.
Sixteen-gigabyte and high-RAM VPS plans become commercially relevant when the workload has a larger working set, but a larger single VM is not always better than separating services. If the database, app tier, and workers have different scaling or recovery requirements, independent resources may be the cleaner architecture.
Raff General Purpose currently includes 4 vCPU / 16 GB / 240 GB at $55.99/month and 8 vCPU / 16 GB / 240 GB at $71.99/month. For higher memory ratios, see High Memory VMs.
WordPress VPS RAM commonly starts around 2–4 GB
A static site or narrow reverse-proxy workload can run below 2 GB. A small cached WordPress site can often begin at 2 GB, while 4 GB provides more room for PHP workers, MariaDB or MySQL, plugins, updates, backups, and traffic variation.
WooCommerce, membership sites, page builders, security scanners, imports, logged-in sessions, and scheduled actions increase the combined working set. For those cases, 4–8 GB can be a more realistic planning range.
Visitor count alone is not enough. Cached content pages behave differently from checkout, search, account dashboards, admin actions, and plugin jobs.
The right WordPress VPS RAM level is the one that preserves memory headroom during the expensive request types and maintenance jobs the site actually runs.
Node.js and API VPS RAM commonly begins around 2–4 GB
A compact Node.js, Python, Go, PHP, Ruby, or .NET service can often begin with 2–4 GB when traffic is modest and the database is external.
A common sizing question is whether one VPS can comfortably run both a Node.js application and PostgreSQL. In that case, size the combined workload rather than the Node process alone.
If Node.js and PostgreSQL share one VM, size the combined workload rather than the Node process alone. Add database cache, connections, workers, logging, deployment overlap, and operating-system headroom. A setup that fits at idle can still fail during traffic or maintenance peaks.
Move toward 4–8 GB sooner when the same VM also runs a database, cache, queue, workers, monitoring, or several containers.
Database VPS RAM often justifies 4–8 GB or more
A small PostgreSQL, MySQL, or MariaDB database can run with less than 4 GB, but production database sizing should follow the working set, connection count, query behavior, cache effectiveness, storage latency, and maintenance pattern.
Memory may be used for:
- shared buffers or buffer pools;
- connection and query memory;
- sorting and hashing;
- filesystem and index cache;
- maintenance operations;
- replication and backup tooling.
More RAM helps when useful data or query activity is genuinely memory-constrained. It does not repair missing indexes, inefficient queries, lock contention, or slow storage.
If application and database processes compete repeatedly on one VM, Separate App and Database Server may be more appropriate than continuing to enlarge the same machine.
Docker VPS RAM usually needs more headroom than one-process hosting
Docker does not create memory. Containers share the host’s physical RAM budget.
A reverse proxy, application, database, Valkey, queue, worker, and monitoring container can each look modest while the total host becomes memory-constrained. A small Compose stack often fits more comfortably in 4 GB than 2 GB. Add more services, workers, imports, backups, or old/new container overlap during deployment and 8 GB can become a safer starting point.
For a multi-container Docker setup, size the host from the combined container peak plus host overhead rather than counting services individually.
Set container memory limits where appropriate, measure the combined peak with docker stats, and remember that limits control consumption; they do not create additional host memory.
Windows VPS RAM needs more operating headroom
A light Windows administrative server can start around 4 GB, but regular Remote Desktop use, browsers, antivirus, accounting software, IIS, SQL Server, file sharing, or multiple concurrent users can make 8 GB or more a safer baseline.
Size Windows from simultaneous users and software footprint rather than the operating-system minimum alone. For commercial Windows Server deployments, also account for Windows licensing and RDS requirements separately from VM memory.
For current Windows VM options, use Raff Windows VM.
Memory pressure matters more than a fixed utilization percentage
The most useful memory signals describe whether processes are waiting, swapping, being killed, or losing performance.
| Signal | What it suggests | Better interpretation |
|---|---|---|
Low MemAvailable during normal peaks | Little reclaimable headroom remains | Investigate working-set size and overlap |
| Sustained swap-in/swap-out | Active memory does not fit comfortably | Add RAM or reduce memory demand |
| OOM events | Kernel cannot satisfy memory demand safely | Urgent capacity or application issue |
Container OOMKilled events | Container or host limit was exceeded | Review limits and host headroom |
| Memory PSI rises with latency | Tasks are stalling for memory | Strong evidence of a memory bottleneck |
| Process memory grows without stabilizing | Possible leak or unbounded behavior | Fix the process before simply adding RAM |
| Database latency rises as memory falls | Working set or cache may be constrained | Confirm DB and storage behavior |
| Deployments trigger instability | Normal operations lack headroom | Resize or change deployment behavior |
Linux Pressure Stall Information (PSI) is useful because it reports time tasks lose while waiting for CPU, memory, or I/O resources. Memory PSI can help distinguish “RAM is highly utilized” from “the workload is actually stalling because memory is unavailable.”
The useful pattern is pressure plus impact. Low available memory combined with swap, OOM events, restarts, or rising latency is much more actionable than one dashboard percentage.
Add RAM only when memory is the confirmed bottleneck
Before paying for more memory, check whether RAM is actually controlling the workload outcome.
| Evidence | Better first move | Why |
|---|---|---|
| Low available RAM + sustained swap or OOM | Add RAM or reduce memory demand | Memory is the active constraint |
| CPU pressure rises while memory has headroom | Add vCPU or optimize compute | RAM is not limiting progress |
| Database is slow with comfortable memory | Check queries, locks, indexes, and storage | More RAM may not touch the bottleneck |
| Process memory grows indefinitely | Fix leak or limits | More RAM delays the same failure |
| Disk is nearly full | Increase or separate storage | Memory does not solve capacity growth |
| High I/O latency dominates | Diagnose storage and application I/O | RAM may not be the wait path |
| External API dominates request time | Optimize dependency path | Local memory does not remove remote latency |
| App and DB repeatedly compete for RAM | Add memory or separate roles | Architecture may matter more than one larger VM |
Use Cloud Server Bottlenecks when CPU, disk, network, database behavior, and memory still need to be ruled out.