October 13th, 2026

Why your Odoo is slow: find the bottleneck before you buy a bigger server

Most slow Odoo cases are not a hardware problem. Adding RAM before measuring is like buying a bigger fridge when the door is left open.

1. Check the workers

workers = 0 means Odoo runs in threaded mode, which is for development only. In production set it from your CPU count:

workers = 5
max_cron_threads = 1
limit_time_cpu = 120
limit_time_real = 240
limit_memory_soft = 2147483648
limit_memory_hard = 2684354560

A common rule: workers = (CPU cores * 2) + 1, then lower it if RAM runs out. Each worker can take about 1 GB at its limit.

2. Find slow queries

Turn on log_min_duration_statement = 500 in postgresql.conf and read the log after a day. Anything above one second that repeats is a candidate. Then run EXPLAIN (ANALYZE, BUFFERS) on it.

3. Look for N+1 in custom code

A loop that calls search() or reads a related field per record sends one query per row. Prefetch with mapped() or a single read_group().

4. Check cron jobs

Heavy scheduled actions at 09:00 will slow every user. Move them to the night in Settings → Technical → Scheduled Actions.

Do these four in order. Only if all four are clean is it worth talking about hardware.

← All posts