keepcalculator

06 Numbers and Powers

VPS Plan for Odoo: A Practical Sizing Guide

Card No. 06·37757 · Updated · Standard formula, shown below

To self-host Odoo, you need a VPS with at least 2 CPU cores, 4 GB of RAM, and 40 GB of SSD storage for a small team (up to 10 users). For production use with more than 10 users or heavy custom modules, scale up to 4 cores, 8 GB RAM, and 80 GB storage.

Why VPS Sizing Matters for Odoo

Odoo is a resource-hungry application. Unlike a simple static website, Odoo runs a Python-based web server, a PostgreSQL database, and a worker process for background tasks (like email queues and scheduled actions). Every user interaction—clicking through menus, generating reports, or sending emails—consumes CPU and RAM. If your VPS is undersized, the system becomes sluggish, pages time out, and in the worst case, the database crashes. Oversizing wastes money. This guide gives you a practical baseline based on Odoo’s official recommendations and common community experience.

How Odoo Uses VPS Resources

Odoo’s architecture determines what your VPS needs. The web server (typically Nginx or Apache) handles HTTP requests and static files. The Odoo application server runs the Python code, processes business logic, and renders pages. The PostgreSQL database stores all your data and is often the bottleneck. Odoo also spawns worker processes—each worker can handle one request at a time. The number of workers is configurable, but each worker consumes 150–300 MB of RAM. If you have 4 workers, that’s 1.2 GB just for workers. Additionally, PostgreSQL uses shared buffers (default 128 MB) and other caches. In practice, a 2 GB RAM VPS is only enough for a single-user test instance, not for real work.

Choosing the Right VPS Plan: A Step-by-Step Guide

Follow these steps to match a VPS plan to your needs:

  1. Count your users. Odoo’s official docs suggest 2 GB RAM for 1 user, 4 GB for 5 users, and 8 GB for 20+ users. For CPU, plan for 2 cores for up to 10 users, 4 cores for 10–30 users, and 8 cores for larger teams.
  2. Estimate your database size. If you have thousands of products, invoices, or messages, your database will grow. A 10 GB database with 10 users needs more RAM than a 1 GB database with the same users. Rule of thumb: keep at least 1 GB of free RAM above your database size.
  3. Consider your modules. Standard apps (CRM, Sales, Inventory) are moderate. Custom modules or heavy reporting (e.g., BI dashboards) increase CPU load. Add 1 core and 2 GB RAM if you use many third-party modules.
  4. Decide on high availability. For a production system, you want a VPS provider with automatic failover and daily backups. This doesn’t change the size, but it affects your choice of provider.
  5. Test with a load test. Use a tool like Apache JMeter to simulate your user count. If response time exceeds 2 seconds, upgrade.

Recommended VPS Sizes for Different Scenarios

Here are concrete starting points. These are minimums—always add headroom for growth.

  • Test / Development (1-2 users): 2 vCPU, 2 GB RAM, 20 GB SSD. Sufficient for trying Odoo, but do not run production here.
  • Small business (up to 10 users): 2 vCPU, 4 GB RAM, 40 GB SSD. This is the sweet spot for most small teams.
  • Medium business (10-30 users): 4 vCPU, 8 GB RAM, 80 GB SSD. Handles more concurrent sessions and larger databases.
  • Large business (30+ users): 8 vCPU, 16 GB RAM, 160 GB SSD. For heavy usage, consider separating the database onto its own VPS.

These numbers assume you’re using Odoo Community or Enterprise with default settings. If you have many automated reports running at night, add extra CPU.

Common Mistakes When Sizing a VPS for Odoo

Many users undersize based on the number of users alone, ignoring data volume and module complexity. Another mistake is using shared hosting—Odoo needs a full Linux environment with root access to install dependencies. Also, people forget about storage I/O. SSDs are non-negotiable; a cheap HDD VPS will be painfully slow even with enough RAM. Finally, don’t ignore swap space. While swap is not a substitute for RAM, a small swap file (2 GB) can prevent OOM (out-of-memory) kills during peak loads.

VPS vs. Other Hosting Options

You have three main paths: VPS, Odoo.sh (official cloud), or shared hosting. A VPS gives you full control and is cheaper than Odoo.sh at scale. Odoo.sh handles backups, upgrades, and staging automatically, but costs more per month and limits customization at the server level. Shared hosting is almost never suitable—Odoo requires Python 3, PostgreSQL, and specific libraries that shared plans rarely provide. For a serious business, a VPS is the best balance of cost and flexibility.

Cost Considerations and Budgeting

VPS pricing varies widely. A 2 vCPU/4 GB RAM plan typically costs $20–$40 per month, while a 4 vCPU/8 GB plan runs $40–$80. Add costs for managed backups ($5–$10) and a domain name (about $10/year). You’ll also need to budget for maintenance time—updates, security patches, and monitoring. If you value your time, a managed VPS (where the provider handles the OS) might be worth the extra $10–$20 per month.

Frequently Asked Questions

Can I run Odoo on a 1 GB RAM VPS?

Technically yes, but only for a very small test instance with no real users. Odoo will consume over 1 GB just for the base system and database, causing constant swapping. You’ll experience timeouts and crashes. For any real use, start with 2 GB RAM.

How many users can Odoo handle on a 4 GB RAM VPS?

With 4 GB RAM, you can comfortably support up to 10 concurrent users, assuming a typical workload (browsing, entering data, generating reports). If users are heavy on reporting or use many custom modules, reduce that to 5–7 users.

Should I choose a VPS with more CPU or more RAM?

Start with RAM—Odoo is memory-hungry. If you see high CPU usage but free RAM, then add CPU. In practice, for up to 30 users, 4 cores is sufficient; RAM is the limiting factor.

Do I need a dedicated database server?

Only for very large deployments (50+ users or databases over 50 GB). For most small businesses, running PostgreSQL on the same VPS is fine. If you do separate, choose a VPS with at least 2 GB RAM for the database alone.

What is the best VPS provider for Odoo?

Any reputable provider that offers KVM virtualization, SSD storage, and a choice of Linux distributions works. Look for providers with data centers close to your users, and check their support for custom kernel modules if you need them. Avoid providers that oversell CPU.

How do I know if my VPS is too small?

Monitor with tools like htop and netdata. If your RAM usage is consistently above 90% or your load average exceeds the number of CPU cores, you need to upgrade. Also, if page loads take more than 3 seconds, check if the bottleneck is CPU, RAM, or disk I/O.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →