Why Odoo Feels Slow After 6 Months (15-Minute Checks We Run First)
Odoo slowdowns are rarely mysterious. Here are the first checks we run on a live database before touching code or buying bigger servers.
Introduction
Six months after go-live, Odoo often feels fine in the morning and painful by afternoon. Users blame "the upgrade," the network, or a new module. In most cases the database is doing too much work with too little visibility—cron overlap, missing indexes, or a handful of heavy queries—not a broken ERP.
These are the checks we run first on a production instance. They take about fifteen minutes and need no new modules.
What we check first
- Cron queue — In Settings → Technical → Automation → Scheduled Actions, look for jobs stuck in "Running" or firing every minute.
- Long-running SQL — On PostgreSQL,
pg_stat_activitywith queries over 30 seconds. - Worker / process count — Check Odoo logs for MemoryError or frequent worker respawns.
- Attachment and filestore growth — Bloated
ir_attachmentslows every form with images or PDFs. - Custom modules on hot paths — Bad
write()overrides on sale.order, stock.picking, account.move. - Mail and chatter — Mass mailing spikes on high-volume records.
- Reporting in peak hours — Move pivot exports and PDF batches to quiet windows.
Quick wins vs deeper fixes
Quick wins: Reschedule noisy crons, add indexes, archive old attachments, cap concurrent report jobs.
Deeper fixes: EXPLAIN ANALYZE tuning, read replicas for reporting, right-sizing workers after measuring concurrency.
For full production depth, see the Odoo Survival Guide PDF.
Browse Odoo modules at hexalian.com/store or run a free Odoo health scan at nonaguard.com (7-day trial).
Running Odoo in production?
Get Odoo modules with full source code, or scan your instance for security and performance issues in under a minute.