Free tool · odoo.conf tuner

odoo.conf Tuner

Enter your server specs and get a production-ready odoo.conf: workers, cron threads, memory and time limits, proxy and database settings. Computed from Odoo's official deployment guidance. No signup, no email gate.

Deployment profile

Computed values

HTTP workers5
Cron threads1
Memory limit (soft, per worker)1015 MB
Memory limit (hard, per worker)1268 MB
Estimated use / available RAM1.9 GB / 7 GB

Backed by real migrations

Numbers like yours, validated on real migrations

Three engagements where the projection turned into operational reality on Odoo. Read the full case studies on the migration service page.

  • ManufacturingV12 → V17

    Industrial Manufacturer, Texas

    12custom modules ported, zero data lost

  • DistributionV14 → V18

    Wholesale Distributor, Quebec

    30%faster page loads after the upgrade

  • Professional ServicesCE → Enterprise

    Consulting Firm, Brussels

    0hproduction downtime during cutover

How the tuner computes your odoo.conf

Every value comes from Odoo's official deployment guidance, the same rules our engineers apply on client servers, applied to the specs you enter:

  • Workers: the CPU ceiling is cores x 2 + 1, and each worker serves roughly 6 concurrent users. The tuner takes your user demand, caps it at the CPU ceiling minus cron threads, and never goes below 2 workers for a served deployment.
  • Memory: a worker averages about 325 MB (80% light requests at ~150 MB, 20% heavy at ~1 GB). After reserving 1 GB for the OS, and 25% for PostgreSQL when it shares the host, the pool shrinks until it fits. limit_memory_soft splits 85% of available RAM across processes; the hard limit is 25% above it.
  • Limits and security: production gets strict time limits (60s CPU / 120s real), list_db disabled, and a reminder to set the master password. Staging and development get relaxed limits for long imports and debugging.

The tuner covers the Odoo side only. For the PostgreSQL side (shared_buffers, work_mem, max_connections), use pgtune

odoo.conf tuning, common questions

  • 01How many workers should Odoo have?

    The ceiling is CPU cores x 2 + 1, but the right number is driven by load: one worker serves roughly 6 concurrent users. A 4-core server with 30 concurrent users runs well with 5 workers plus a cron thread, provided RAM allows it.

  • 02Why does the development profile set workers = 0?

    workers = 0 runs Odoo in threaded mode: one process, easier debugging, working --dev options. It cannot exploit multiple cores and must never serve real users.

  • 03What is the difference between limit_memory_soft and limit_memory_hard?

    The soft limit recycles a worker gracefully after it finishes its current request. The hard limit kills it immediately mid-request. The hard limit is the safety net; the soft limit does the day-to-day memory hygiene.

  • 04What does proxy_mode do and when do I need it?

    proxy_mode = True makes Odoo trust X-Forwarded-* headers from your reverse proxy, so real client IPs and HTTPS scheme are seen correctly. Enable it whenever nginx, Apache or Traefik sits in front of Odoo, and only then.

  • 05Why does my config say longpolling_port instead of gevent_port?

    Same port, renamed. Odoo 16 renamed longpolling_port to gevent_port when the live-chat/bus worker moved to gevent. The tuner emits the right key for the version you pick; both default to 8072.

  • 06Is this a substitute for load testing?

    No. It gives you the same starting point an experienced Odoo engineer would write down before measuring. Validate under production-like traffic and adjust workers and limits from real metrics.