Khichdi InfoTech
Skip to content

Knowledge Hub · Pillar guide

Complete Guide to Odoo Performance

Diagnose, optimize, and operate Odoo performance in production — ORM, workers, queues, caching, website/API latency, monitoring, and scaling — without treating Postgres as the whole story.

~22 min orientation · 12 supporting articles · Last reviewed 2026-07-30

Table of contents

Odoo performance is the time and resources required for users, jobs, and APIs to complete meaningful work — open forms, confirm orders, sync stock, run cron — under real production data volumes.

This pillar emphasizes application-level engineering: ORM usage, worker topology, queue design, caching, and observability. Database tuning matters, but it is not a substitute for fixing N+1 searches or runaway computes.

Development, Migration, and Shopify guides cover how to build, upgrade, and integrate. Performance is how those systems stay usable at peak.

Reader path: measure → locate layer → fix → verify → monitor.
Slow SQL?

Index / reduce N+1

Worker saturated?

Scale workers / split jobs

Chatty API?

Batch / cache

UI heavy?

Lazy load / limit domains

Executive readiness: SLOs, hot paths, worker headroom, on-call.
  • Owners named
  • UAT scripts signed
  • Rollback documented
  • Hypercare roster ready

01

Performance is user-perceived latency plus job throughput and resource headroom — measured against real roles and peak loads, not empty staging demos.

Read: What Is Odoo Performance?
HTTP request → worker → ORM → PostgreSQL → response with timing callouts.
1

Request

HTTP / RPC enters Odoo.

2

Auth & ACL

Users, groups, record rules.

3

ORM work

Reads/writes with business logic.

4

Response

UI, API payload, or job enqueue.

02

Typical symptoms: slow form opens, stuck cron, worker timeouts, API lag, and website TTFB spikes. Most root causes are application patterns, not “buy a bigger server.”

Read: Common Odoo Performance Mistakes
Symptom → likely layer (UI, ORM, SQL, worker, external API).
Slow SQL?

Index / reduce N+1

Worker saturated?

Scale workers / split jobs

Chatty API?

Batch / cache

UI heavy?

Lazy load / limit domains

03

Start with evidence: slow query logs, worker metrics, profiling of hot methods, and a shortlist of business-critical paths before rewriting modules.

Read: Diagnosing Slow Odoo Systems
Audit checklist: paths, data volume, modules, workers, cron debt.
  • Hot path profiled
  • N+1 reviewed
  • Indexes verified
  • Cron debt listed
  • Worker sizing documented

04

Prefetch, batch writes, careful computes, and domain design decide whether the ORM helps or hammers Postgres.

Read: ORM Performance Best Practices
Recordset prefetch vs N+1 search-in-loop.
  • Model

    Python class

  • Fields

    Stored / computed

  • SQL table

    Persistence

  • Cache / prefetch

    Performance

  • modelfields
  • fieldstable
  • modelcache(prefetch)

05

Indexes, vacuum health, and bloat matter — applied to Odoo’s access patterns, not generic DBA checklists copied from blogs.

Read: Database Optimization for Odoo

06

Explain plans on production-like data; fix domains and missing indexes on fields you filter and join every minute.

Read: Database Optimization for Odoo

07

Heavy form inheritance, huge one2many embeds, and chatter floods make the UI feel broken even when SQL is fine.

Read: ORM Performance Best Practices

08

Cron that scans entire tables or holds long transactions starves interactive workers. Chunk, prioritize, and observe.

Read: Background Jobs and Queue Optimization

09

HTTP workers, cron, and longpolling compete for CPU and DB connections. Topology and limits must match load shape.

Read: Scaling Odoo for Growth
HTTP workers vs cron vs queue workers and shared Postgres.
  • HTTP workers

  • Cron / longpolling

  • Job queue workers

  • PostgreSQL

  • httpdb
  • crondb
  • queuedb

10

ORM cache, assets, HTTP cache, and Redis-style layers each solve different problems — misuse creates stale or thrashing systems.

Read: Caching Strategies for Odoo
ORM / assets / CDN / app cache: what each invalidates.
OptionBest whenTrade-off
ConfigureStandard Odoo covers the needLimited uniqueness
CustomizeDifferentiating workflowUpgrade cost
IntegrateExternal system of recordSync complexity

11

Filestore growth, binary fields in DB, and image-heavy views slow backups and pages. Keep large blobs out of hot paths.

Read: Improving Website Performance

12

Website and eCommerce need assets, caching, and controller discipline — separate from back-office form latency but still Odoo application work.

Read: Improving Website Performance

13

XML-RPC/JSON-2 and custom controllers need batching, pagination, and auth that does not re-search the world per call.

Read: API Performance Optimization

14

Durable queues protect interactive traffic. Backlog age and poison messages are first-class performance signals.

Read: Background Jobs and Queue Optimization
Enqueue → worker pool → ack/retry/DLQ with lag metrics.
1

Enqueue

Job created with payload.

2

Worker pick

Claim with visibility timeout.

3

Process

Idempotent handler.

4

Ack / retry

Success or backoff.

15

Alert on latency percentiles, worker saturation, cron lag, and error rates — not only CPU averages after users complain.

Read: Monitoring Odoo in Production
Suggested panels: request p95, workers busy, DB time, queue depth.

p95 response

watch

< 800ms

Failed jobs

on track

< 1%

DB CPU

watch

< 70%

Error rate

on track

< 0.5%

16

Structured logs with request/job IDs make slow traces actionable. Unbounded debug logging is itself a performance bug.

Read: Monitoring Odoo in Production

17

Load-test critical paths on production-like data before peak season or go-live. Synthetic empty DBs lie.

Read: Diagnosing Slow Odoo Systems

18

Scale workers and split workloads after fixing application hotspots. Vertical scaling alone does not cure N+1.

Read: Scaling Odoo for Growth

19

Configure worker counts, memory limits, and proxy timeouts to match concurrent users and long requests safely.

Read: Scaling Odoo for Growth

20

Migrations and -u runs stress IO and locks. Plan windows, dry runs, and post-upgrade performance validation.

Read: Choosing the Right Performance Strategy

21

sudo-for-speed, search-in-loops, stored compute storms, and “fix it in production without metrics” remain the classics.

Read: Common Odoo Performance Mistakes

22

Measure first, fix hot paths, keep workers healthy, and budget performance in every customization and connector change.

Read: Choosing the Right Performance Strategy
Production performance operating checklist.
  • Owners named
  • UAT scripts signed
  • Rollback documented
  • Hypercare roster ready

23

Prefer partners who profile with evidence, leave runbooks, and fix code — not only recommend larger VMs.

Read: Choosing the Right Performance Strategy

Supporting articles

Independent deep-dives in this performance cluster.

intro · 8 min

What Is Odoo Performance?

A practical definition of Odoo application performance: response time, throughput, worker utilization, ORM cost, and how it differs from generic server tuning.

intermediate · 10 min

Diagnosing Slow Odoo Systems

A step-by-step audit for slow Odoo: reproduce symptoms, profile requests, inspect SQL, check workers and queues, and isolate custom module cost.

intermediate · 11 min

ORM Performance Best Practices

Odoo ORM patterns that scale: batch operations, prefetch, domain design, computed fields, and avoiding N+1 on sale, stock, and accounting paths.

intermediate · 10 min

Database Optimization for Odoo

PostgreSQL tuning for Odoo workloads: indexes on ORM domains, bloat control, connection limits, lock avoidance, and post-migration validation — not generic DBA theory.

intermediate · 9 min

Improving Website Performance

Speed up Odoo website and eCommerce: asset bundles, CDN, image optimization, route caching, and separating storefront load from back-office workers.

intermediate · 10 min

Background Jobs and Queue Optimization

Keep Odoo responsive under load: cron design, queue_job channels, worker allocation, job chunking, and integration backpressure for high-volume sync.

intermediate · 9 min

Caching Strategies for Odoo

Layered caching for Odoo: ORM cache behavior, HTTP reverse proxy, CDN static assets, session considerations, and safe invalidation when master data changes.

advanced · 10 min

API Performance Optimization

Speed and stabilize Odoo XML-RPC, JSON-RPC, and REST endpoints: payload design, authentication cost, rate limits, batch endpoints, and integration-friendly ORM patterns.

intermediate · 9 min

Monitoring Odoo in Production

Observability for live Odoo: RPC latency, worker health, PostgreSQL metrics, queue lag, cron duration, and alerting runbooks tied to business workflows.

intro · 8 min

Common Odoo Performance Mistakes

Frequent causes of slow Odoo in production: hardware-first fixes, ORM anti-patterns, cron pile-ups, unindexed custom fields, and integration designs that ignore backpressure.

advanced · 10 min

Scaling Odoo for Growth

Grow Odoo capacity deliberately: vertical vs horizontal workers, database headroom, read replicas for reporting, multi-company load, and integration scale paths.

intro · 9 min

Choosing the Right Performance Strategy

Prioritize Odoo performance work: audit-first vs rescue, quick wins vs refactors, infra vs application, and phased roadmaps aligned to business calendars.

Odoo feeling slow in production?

Share your edition, hosting, worker setup, and the slowest user paths — we will outline a diagnosis and remediation plan.

Business technology and software delivery