Odoo performance with 8, 9, 10 & 11 and PostgreSQL 9.6

With the arrival of PostgreSQL 9,6, Odoo performance can now benefit from parallel query functions. From the PostgreSQL side, this is excellent news because this means many SELECT queries operated by the Odoo ORM can be run faster than they used to be. On the paper, the advantages are:

Faster query results (PostgreSQL claim up to 32x faster than on previous versions such as 9.5)
Improvement in GIN, BRIN and B-tree Indexing modes.
Better Row compression

Yet, when one looks at Odoo performance, one must understand that Odoo does not have capacity to use these very efficiently since the above imply two major factors […] Read more

Big data Odoo optimization

Big data Odoo optimization

Big data Odoo optimization is a very serious issue indeed. Because Odoo can be provided to big companies, this also implies that they will use the system extensively and that goes in pairs with a very fast and sustained data growth. Obviously, the most impacted standard tables will be the ones we call the “_lines” tables such as: sales_order_line ; account_move_line ; stock_move_line etc….etc….

The issue

To evaluate the impact of generic data growth on these tables, let’s imagine a standard company with 10 branches and 2 accounting persons validating 100 invoices each per open day. Let’s be fair and set the […] Read more

Odoo virtual memory on VM

Odoo virtual memory on VM

Odoo virtual memory on VM is a critical issue. Why? Although datacnters are now thriving with VM instances, one has to keep in mind that Odoo was originally designed to be implemented on physical systems. Among the main differences, one must keep in mind that all VMs (Virtual Machines), droplets, instances and other emulated environments do not use any swap partition at all. And yet, SWAP is the guardian of stability when your environment starts falling short on memory…

As you can see, VM performanc is affected by the type of swap. Yet, absence of swap can be lethal to system […] Read more

Before installing Odoo

Last week, we recived the following enquiry:


We are an odoo official partner and we are interested to have a right technical implementation more secure and with performance for odoo.
How you can help us.
What we search is a Document or a user manual to configure and setup odoo and secure it.


And here is our reply, since this is something you should do before installing Odoo :

To be honest with you, I have been implementing data management infrastructures for almost 2 decades now and I am still learning every day. One thing you must understand about Odoo is that it is using […] Read more

How is Odoo better than Microsoft Dynamics or SAP Business One?

How is Odoo better than Microsoft Dynamics or SAP Business One?

Odoo better than Microsoft Dynamics or SAP? Why?

There are many reasons why Odoo is becoming the number one downloaded, implemented and used ERP platform in the world.  Whether it is from the functional or technical point of view, here are the reasons why  Odoo better than Microsoft Dynamics or SAP;

Real time process – it can be accessed everywhere at any time due to its web based interface
Faster communication. Because it can be accessed from anywhere, it makes communication faster within the departments.
No special hardware and no installation. You can start entryingyour data into the software from any computer as long as […] Read more

Odoo and PostgreSQL 9.5

Odoo and PostgreSQL 9.5

Odoo and PostgreSQL 9.5: a good or a bad idea?

After weeks of testing and benching Odoo and PostgreSQL 9.5, we have come to the following conclusion: PostgreSQL 9.5 (which comes out of the box with new Ubuntu 16.04 LTS) gives an excellent stability and performance.

Nevertheless, the PostGreSQL was slightly mofidied and some parameters we used to tweak in the previous version are now purely and simply gone. Others on the other hand have been added.

For example, checkpoint_segments is no longer being used and should be removed from the configuration.

On the other hand, max_wal_size has been added and shoud be setup […] Read more

Odoo server requirements

Odoo server requirements: Choose the right system

The standard Odoo server requirements are quite low. Odoo 8 or 9 are not very demanding when one considers the required hardware. The following grid should give you an idea and help you choose the right server:

To have more details, use the author’s interactive grid here:

This is only an estimation of the typical Odoo server requirements, assuming the database size is “standard” and the usage is typical. Of course, this is not covering the VM possibility although it is well known that VMs will come along with more issues and problems, especially as far […] Read more

Check your Odoo setup in 3 stages

Check your Odoo setup in 3 stages

Check your Odoo implementation

If your implementation was done correctly, your system should not only run very fast but also be very stable. If this is not the case, it is great time to check your Odoo implementation. This means the technical deployment of either Odoo and / or PostGreSQL was not done properly. Before choosing a partner, have you followed the “BE SAFE” recommendations?

If you have not, you already ahving bugs, error messages, server restarts et…. etc… This is the common lot of unexperienced implementations. Now it is time to cross-check your implementation. You can easily do so by checking […] Read more

Improve your Odoo PostgreSQL performance

Improve your Odoo PostgreSQL performance

You probably have noticed already that Odoo and PostgreSQL are installed in separate packages. That should give you the following clue:


The standard PostgreSQL installation is neither optimized for your hardware not for your Odoo


Before you move into running PostgreSQL with your Odoo and through Python-driven requests, here is a list of the things you should do to give your system a real chance to run decently:


PostgreSQL logging

Be generous with logging; it’s very low-impact on the system
Locations for logs are better managed by syslog.
Just use:

log_destination = ‘csvlog’

log_directory = ‘pg_log’



Start low: 32-64MB
Look for ‘temporary file’ lines in logs
set to 2-3x the largest […] Read more