Managed infrastructure for SMBs

How to Choose VPS Size (CPU, RAM and Storage) for Small-Business Apps

Guides · GlassHosting

VPSSizingLinuxSMB

The short answer

The right VPS size is the smallest server that runs your app comfortably at its busiest hour, with room to spare. You get there by matching each resource to what your app actually does: CPU for processing work, RAM for how much the app and its database keep in memory, and storage for both how much data you keep and how fast the disk has to answer. Start from a sensible baseline, measure real usage for a week or two, then resize up or down with confidence.

This guide walks small-business owners and IT leads through each resource, shows which ones matter most for common apps, explains how to measure usage on a Linux VPS, and lists the signs that it is time to scale.

What each resource does

Resource What it handles What running short looks like
CPU (vCPU cores) Running code: page builds, API calls, reports, encoding, background jobs Slow pages under load, long queues, jobs that finish late
RAM Holding the app, its workers and database caches in memory Sudden slowdowns, swap use, processes killed for using too much memory
Storage capacity Your data, uploads, logs, databases and local backups Disk full errors, failed updates, failed backups
Storage speed (IOPS) How quickly the disk reads and writes small pieces of data Slow database queries and high "I/O wait" even when CPU looks idle
Network Traffic between your server and its users Slow downloads and uploads, timeouts during busy periods

Most small-business apps are limited by RAM and disk speed long before they run out of raw CPU. That is why measuring matters more than guessing.

Step 1: Describe the workload

Write down a few facts before you pick a size:

  • What runs on the server. A website, an online store, a database, a line-of-business app, a file share, a mail relay, a game server, or several of these together.
  • How many people use it at once. Daily visitors matter less than how many are active at the same moment during your busiest hour.
  • How much data you keep. Current database size, uploads and files, plus how fast that grows each month.
  • What runs in the background. Scheduled reports, imports, backups, search indexing and email queues all use resources on their own schedule.
  • How much slowness you can accept. A checkout page and an internal reporting tool have very different expectations.

Step 2: Match the app to the resource that matters most

Workload Watch first Why
WordPress or WooCommerce store RAM, then CPU PHP workers and the database cache live in memory; checkout and search pages use CPU
Database server (MySQL, MariaDB, PostgreSQL) RAM and disk speed Databases run fastest when the working set fits in memory and the disk answers quickly
Line-of-business or custom web app CPU and RAM Depends on how much processing each request does and how many workers run
File share or document storage Storage capacity Capacity grows with your data; speed matters for many users at once
Remote desktop on a Windows VPS RAM per user Every signed-in user adds their own session and apps
Docker host running several services RAM Each container adds its own memory footprint
Game server RAM and single-core CPU speed Many game servers lean heavily on one fast core

If your server runs several of these at once, size for the combined load, or split them across servers so one busy service cannot slow down the rest. For game servers, our Minecraft RAM guide goes into detail for one of the most common cases. For Windows workloads, see Windows VPS for small business.

Step 3: Size CPU

CPU decides how much work the server can do at the same time. A few guidelines:

  • Count concurrent work, not visitors. One vCPU handles one task at a time. If your app regularly runs several heavy requests or jobs at once, it needs several cores.
  • Leave headroom. Plan so normal busy-hour use sits well below the maximum. Short spikes are fine; sustained use near the limit means every new request waits.
  • Watch background jobs. Reports, imports and backups that run during business hours compete with your users. Schedule them off hours or give the server extra cores.
  • Single-threaded apps benefit from faster cores more than more cores. Many game servers and some older business apps work this way.

Step 4: Size RAM

RAM is the resource most small-business servers run short on first. Add up what needs to sit in memory:

  • The operating system and basic services. Linux itself needs a modest share; Windows Server needs noticeably more.
  • Your app and its workers. Each PHP, Node.js, Python or Java worker uses its own memory, and the number of workers sets how many requests you serve at once.
  • The database cache. Databases are fastest when the data you use most often stays in memory.
  • Caching layers such as Redis or an object cache.
  • Room for spikes and updates. Updates, backups and busy hours all add temporary memory use.

When a Linux server runs out of RAM it starts using swap, which is much slower, and eventually the kernel stops processes to free memory. If you see swap in regular use or "out of memory" messages in your logs, add RAM before tuning anything else.

Step 5: Size storage

Plan for both capacity and speed.

Capacity. Add together:

  • The operating system and installed software
  • Your current data: databases, uploads, documents and code
  • Expected growth over the next year
  • Logs, which grow every day unless they rotate
  • Local backups or snapshots, if they live on the same server
  • Free space as a buffer, because full disks break databases, updates and backups

Speed. Databases and busy apps read and write many small pieces of data, so SSD or NVMe storage makes a large difference. If your app feels slow while CPU use is low, check disk wait time before buying more cores.

Keep your real backups off the server. A local copy is convenient, and a separate copy is what saves you when the server itself has a problem. Our Linux VPS backups and snapshots guide covers both.

Step 6: Measure what you actually use

After the server has run real traffic for a week or two, check the numbers. On a Linux VPS:

# CPU load and the busiest processes
uptime
top

# Memory and swap use
free -h

# CPU, memory, swap and disk wait every 5 seconds
vmstat 5

# Disk capacity by file system
df -h

# Which folders use the most space
sudo du -xh /var --max-depth=2 | sort -h | tail -20

# Disk performance (install the sysstat package first)
iostat -x 5

What to look for:

  • Load average in uptime compared with your number of vCPUs. Load that stays above your core count means work is waiting for CPU.
  • "available" memory in free -h. This is what new work can still use. If it stays low during busy hours, add RAM.
  • Swap in use in free -h or the si and so columns in vmstat. Regular swapping is a clear signal to add RAM.
  • "wa" (I/O wait) in vmstat and top. High wait with low CPU use points at storage speed.
  • Disk use in df -h. Plan an upgrade or cleanup well before a file system fills.

Look at your busiest hour, not the daily average. A server that idles most of the day and struggles every lunchtime is undersized for the job that matters.

For ongoing visibility, set up monitoring and alerts for CPU, memory, disk space and uptime, so you find out about pressure before your customers do.

Step 7: Scale up, scale out, or tune

When the numbers show pressure, you have three options:

  • Scale up. Add CPU, RAM or storage to the same server. This is the simplest fix and suits most small businesses.
  • Scale out. Move the database or a busy service onto its own server, or run several app servers behind a load balancer. This adds resilience as well as capacity.
  • Tune. Add caching, fix slow database queries, limit worker counts to what memory can hold, rotate logs and schedule heavy jobs off hours. Tuning often recovers a lot of headroom at no extra cost.

Take a snapshot before any resize or major change, so you can roll back quickly if something does not behave as expected.

KVM or LXC for your app

The type of VPS affects sizing too. A KVM VPS is a full virtual machine with its own kernel, which suits Windows, custom kernels, Docker hosts and apps that need strict isolation. An LXC container shares the host kernel, which makes it light and efficient for Linux web apps and services. Our KVM vs LXC guide explains which fits your workload.

Signs your VPS is the wrong size

Too small:

  • Pages slow down every busy hour
  • Swap in regular use or "out of memory" messages in logs
  • Load average above your vCPU count for long stretches
  • Disk space warnings or failed backups and updates

Bigger than you need:

  • CPU use stays low even at your busiest hour
  • Most of your RAM is unused day after day
  • Disk space is mostly empty with slow growth

Right-sizing is an ongoing habit. Review the numbers every few months and after any big change, such as a product launch, a new app or a jump in staff.

A quick sizing checklist

  1. List every app and service the server will run.
  2. Note the peak number of people using it at once.
  3. Identify the resource each app depends on most.
  4. Start from a baseline with headroom on RAM and storage.
  5. Measure CPU, memory, swap, disk wait and disk space during real busy hours.
  6. Scale up, scale out or tune based on what the numbers show.
  7. Snapshot before every resize and keep off-server backups running.
  8. Review sizing every few months.

Next steps

Secure the server you choose with our SSH security guide, and protect it with the backups and snapshots guide. Running an online store? See what managed WooCommerce hosting includes and the store plans.

If you would rather hand sizing, monitoring and scaling to a team that does it every day, that is what managed hosting is for. Read managed vs unmanaged VPS to see the difference, then tell us what you run or email sales@glasshosting.com. We will help you pick a size that fits your app today and grows with it.

Host with GlassHosting

Order a plan or browse the knowledgebase for deeper how-tos.

Order / billing Knowledgebase All guides