Skip to Content

Odoo Server Sizing Architect

Stop guessing. Calculate the exact CPU, RAM, and Worker configurations for high-concurrency Odoo clusters.

Input Parameters

RECOMMENDED INFRASTRUCTURE
DigitalOcean Vultr
Enter user count to see specs

Recommended Config

Production Ready
0
CPU Cores
0 GB
RAM (Minimum)
# HTTP Workers (Total Procs: +1 Cron)
workers = 0
max_cron_threads = 1
limit_memory_soft = 0
limit_memory_hard = 0
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
shared_buffers = 0MB
effective_cache_size = 0GB
# 25% RAM Rule Applied
# work_mem = 16MB
# max_connections = 100
Specs assume a dedicated server for Odoo & PostgreSQL. If running other heavy apps (Jenkins, Docker), increase resources accordingly.

Understanding Odoo Hardware Requirements

How are Odoo Workers Calculated?

The "Worker" is the fundamental unit of Odoo concurrency. A single worker processes one HTTP request at a time. The industry-standard formula is:

(Concurrent Users / 6) + 1

This ratio assumes typical user behavior (reading screens, typing) where only 1 in 6 users is actively hitting the server at any given second. For heavy automation or API usage, this ratio should be tighter (e.g., 1:4).

Why RAM Matters: The "Soft Limit"

Unlike many PHP apps, Odoo is a long-running Python process. Over time, workers can consume more memory. The limit_memory_soft parameter tells Odoo to recycle a worker gracefully once it exceeds its RAM quota (typically 640MB-1GB depending on your modules).

PostgreSQL: The Hidden Bottleneck

Adding CPU to Odoo won't help if your database is choking. Our calculator provides the shared_buffers value, which should be set to 25% of your total system RAM. This ensures that frequently accessed data (like Products and Partners) lives in RAM, not on the slow Disk.

Pro Tip: For deployments larger than 50 users, we strongly recommend splitting the Odoo Application and PostgreSQL Database onto two separate servers.

Need a deeper system review?

Get an Odoo Performance Audit