Do you have Odoo but it’s not quite performing up to your standard – here are some easy tips, tricks, and strategies you can use to help get what you want from the popular business management software.
Plan and deploy properly.
Be sure to active ‘multi-worker’ when investigating your deployment architecture.
Multi-worker will enforce limits, recycle processes, deliver an overall better performance, and sync changes. In general, worker processes at a rate of 1 per CPU core which is doubled for recycling.
The minimum workers is 6 while the maximum should be calculated by diving the dedicated RAM being used by the worker soft memory limit. Evaluating this equation, you may find you require more RAM or need to increase your soft limit.
A strategy to get more performance out of Odoo is to set up a reverse proxy in front of Odoo – SSL termination, Gzip, serve static assets, load balancing, and block access to DB manager.
On the back-end, you can maximize your I/O, RAM, and CPU speed. On the front-end (HTTP), you can also maximize speed and number of cores to help improve upon performance.
Setup precise monitoring.
Establish a performance baseline, including transactions/minute which will be handled by the PostgreSQL; requests/minute and average duration as handled by Odoo; response time and IPOS which is handled by the disc; load, I/O wait, and memory, as handled by the system; and connections and bandwidth which is the network.
Configure limit warnings which can help identify when performance may be threatened. A suggested tool to use for the process of performance baseline monitoring is Munin.
Updating, sampling, and optimizing.
Deployment should be updated regularly.
Regarding PostgreSQL, verify your server settings. Examine log slow queries using log_min_statement_duration=500.
Verify statistics and vacuuming, create missing indexes carefully, and use EXPLAIN ANALYZE <query> to verify the plan.
Sample the system while running and install pg_activity to watch it. Using pg_Activity you’ll be httop-like for PostgreSQL, running or waiting or blocking queries, read/write per second, pause or kill queries as needed, and evaluate CPU/memory/load.
From there, continue to sample the system while running. Send SIGQUIT to dump worker stacks. These are easy to send from htop and can be repeated to analyze long-running transactions.
Optimizing deployment is a continual strategy to help improve performance. You may wish to set aside time to do this, ensuring it is maintained as a priority if you are currently experiencing or have ever experienced performance problems.
Launching a performance investigation is easy with Odoo, following these three simple strategies.
Ensure as you scale, your deployment has what it needs to deliver the performance promised. If any one component is lesser than the defined requirement, it is going to strain your system no matter what you have happening elsewhere.
Be sure to set up precise monitoring to identify where things are going wrong. Lastly, always update, sample, and optimize. Odoo does not typically present performance issues however when/if it does, these three areas are where to focus attention.
As a last resort, if you still run into issues despite all this troubleshooting, there’s always tech support at Odoo.com/Help.