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
- Executive summary
- What Is Odoo Performance?
- Common Performance Problems
- Performance Assessment
- ORM Performance
- Database Optimization
- Query Optimization
- Views and UI Performance
- Scheduled Jobs
- Background Workers
- Cache Strategies
- Attachments and Media
- Website Performance
- API Performance
- Queue Performance
- Monitoring
- Logging
- Load Testing
- Scaling Odoo
- Multi-Worker Deployment
- Performance During Upgrades
- Common Performance Mistakes
- Best Practices
- Choosing a Performance Partner
- Supporting articles
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.
Index / reduce N+1
Scale workers / split jobs
Batch / cache
Lazy load / limit domains
- 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? →Request
HTTP / RPC enters Odoo.
Auth & ACL
Users, groups, record rules.
ORM work
Reads/writes with business logic.
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 →Index / reduce N+1
Scale workers / split jobs
Batch / cache
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 →- 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 →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
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 →| Option | Best when | Trade-off |
|---|---|---|
| Configure | Standard Odoo covers the need | Limited uniqueness |
| Customize | Differentiating workflow | Upgrade cost |
| Integrate | External system of record | Sync 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
Job created with payload.
Worker pick
Claim with visibility timeout.
Process
Idempotent handler.
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 →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 →- 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.
Related guides
Complete Guide to Odoo Development
Engineering practices that prevent performance debt in modules.
View →Complete Guide to Odoo Customization
Decide which changes are worth the performance cost.
View →Complete Guide to Odoo Migration
Validate performance after version upgrades and cutovers.
View →Complete Guide to Shopify–Odoo Integration
Queues, rate limits, and sync load that drive ERP performance.
View →Knowledge Hub
Browse published pillars and categories.
View →Related services
Odoo Performance Optimization
Diagnosis and remediation for slow production Odoo — ORM, workers, and operations.
View →Dedicated Odoo Developer
Reserved capacity for profiling, module fixes, and performance backlog.
View →Odoo Support
Monitoring, incident response, and AMC for live performance-sensitive systems.
View →Odoo Rescue
Audit-first recovery when performance incidents block go-live or peak season.
View →Infrastructure & Deployment
Hosting, workers, and deployment practices that keep Odoo responsive under load.
View →Related portfolio
Shopify–Odoo integration
High-volume sync and queue patterns that stress API and worker performance.
View →Retail automation & ecommerce
Multi-channel retail operations where stock and order paths must stay fast.
View →Shadow Group multi-company migration
Large customized estate — performance validation through upgrade and growth.
View →Logistics barcode shipping
Operational flows where scanning and shipping latency matter on the warehouse floor.
View →Odoo feeling slow in production?
Share your edition, hosting, worker setup, and the slowest user paths — we will outline a diagnosis and remediation plan.
