Tuning an instance
Odoo's performance settings are a small set of numbers that interact badly when set independently: worker count, memory limits per worker, request time limits, and how many of those the machine can actually afford.
Antelao asks you for the intent instead: a sizing method and how many concurrent users you expect. The worker counts and memory limits are derived from that.
Where it lives
In the Web UI, the instance's Tuning tab. On the command line it is part of the instance configuration:
prod-1# odoocli instance config edit --instance acmeTuning is a configuration change like any other, which means it is saved first and applied second. See Configuration and changes.
What the numbers mean
| Setting | Effect |
|---|---|
| Workers | How many Odoo worker processes serve requests. More workers serve more concurrent users and cost more memory |
| Memory limits | Soft and hard limits per worker. A worker exceeding the hard limit is recycled |
| Time limits | How long a request or a cron job may run before it is killed |
Odoo's own rule of thumb is roughly one worker per six concurrent users, plus one, and the derived values follow that shape. The reason to override them is a workload that is not shaped like an average one: heavy reporting, large imports, or an instance that mostly serves cron jobs.
Sizing against the host
Workers are per instance, memory is per host. Ten instances each sized for fifty users will oversubscribe a machine that could serve five hundred users as one instance.
The Statistics and disk page shows host and per-container CPU and memory over time, which is the honest answer to whether the current sizing fits.