Skip to main content

VDS for CRM and SaaS: How to Calculate Resources

VDS / VPS · 18.10.2026 · 5 min read
Illustration for “VDS for CRM and SaaS: How to Calculate Resources”

CRM systems and internal SaaS services rarely spike the server the way an online store does during a sale, but they keep a steady load on the database and memory throughout the working day. A ready-made shared hosting plan usually does not fit this task — a VDS with its own resource calculation is needed. Here is what to size first — CPU, memory, or disk — and how to tell that the current plan needs to change.

What determines the load of CRM and SaaS on resources

The main consumer of resources in CRM and SaaS is not the web server but the database: every opened report, customer search, or table filter turns into a query to the DBMS. The number of staff working at the same time directly multiplies into the number of parallel database queries, and that — not the number of site visitors — sets the real load.

How to size memory and disk for the database

The starting point is the size of the database itself on disk plus a reserve for growth over a year or two; on top of that comes the memory the DBMS keeps as a cache for frequently requested data — the larger this cache, the less often the database hits the disk directly. Current memory usage by the database process can be checked right on the server.

# Current memory usage by the database process
ps -o rss,cmd -C mysqld | awk '{sum+=$1} END {print sum/1024, "MB"}'

How to size the CPU and core count

Parallel requests from different staff members spread across several cores better than in a scenario with one heavy process, so for a CRM with 10 to 20 simultaneous users, the number of cores usually matters more than their clock speed. Which CPU architecture to pick for this type of load — favoring multithreading over the peak clock speed of a single core — is covered in the article on choosing a server CPU.

What plan limits mean and how to read them

Besides CPU, memory, and disk, a plan almost always has limits that are easy to overlook when sizing: the number of simultaneous database connections, a disk I/O quota, traffic. For a CRM with active use all day, it is precisely these hidden limits, not the plan's basic specs, that most often become the first bottleneck.

  • The number of simultaneous database connections — limits how many staff can work in parallel without connection errors.
  • The disk I/O quota — shows up as slowdowns when several people save reports at the same time.
  • The memory limit per process — exceeding it can get the DBMS process forcibly stopped by the system.
  • Network traffic — rarely critical for an internal CRM, but matters if external clients connect to the SaaS.
  • The number of processes or threads per plan — limits how many background tasks (mailings, reports, sync) run at once.

A full list of typical limits and where to find them in the control panel is covered in the article on hosting limits and resources.

Load monitoring and the moment to upgrade the plan

The decision to upgrade a plan is better made from a load graph spanning weeks, not from a single complaint about slowness: a one-off spike at month end when reports are closed is not a reason to increase resources permanently, while a steady rise in average consumption is.

MetricNormal levelSignal to upgrade
CPU loadbelow 70% during working hourssteadily above 85% for several days in a row
RAM usagesteadily below the plan limitclose to the limit, growing week over week
Database query queuequeries run with no waitingqueries start waiting in a queue
Free disk spacemore than 20% of capacitybelow 10% of capacity

How to collect these metrics in one place and set up a notification in advance, rather than after the fact, is described in the article on VDS resource monitoring.

Frequently asked questions

How much memory to budget per CRM user?

There is no exact universal figure — it depends on what reports and exports a staff member opens: a light view of a customer card and a heavy export to a spreadsheet with thousands of rows consume very different amounts of memory on the database side. It is better to rely on your own measurements after launch rather than on someone else's ready-made figures.

Is a separate VDS needed for the database and for the application?

Under light load, both components usually coexist fine on one VDS. Splitting into two servers makes sense when the database and the application itself compete for the same memory or CPU during peak hours, and it becomes visible that the growth of one component interferes with the other.

How to account for SaaS user growth when choosing a plan?

A sensible approach is to take a plan with headroom for predictable growth a few months ahead, not for the entire forecasted growth at once: a virtual server is easier to scale up as needed than to pay for excess resources in advance for an indefinite period.

Was this article helpful?
← Back to Knowledge Base Ask Support