![](https://static.wixstatic.com/media/68165d_1149c87d1a63454f8c1e227be547c1d2~mv2.png/v1/fill/w_980,h_446,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/68165d_1149c87d1a63454f8c1e227be547c1d2~mv2.png)
By default, Odoo is working in multithreading mode. For production deployments, it is recommended to change to the multiprocessing server as it increases stability and makes better usage of the system resources.
To enable multiprocessing, you need to edit the Odoo configuration and set a non-zero number of worker processes. The number of workers is calculated based on the number of CPU cores in the system and the available RAM memory.
According to the official Odoo documentation , to calculate the workers' number and required RAM memory size, you can use the following formulas and assumptions:
Worker number calculation
Theoretical maximal number of worker = (system_cpus * 2) + 1
1 worker can serve ~= 6 concurrent users
Cron workers also require CPU
RAM memory size calculation
We will consider that 20% of all requests are heavy requests, and 80% are lighter ones. Heavy requests are using around 1 GB of RAM while the lighter ones are using around 150 MB of RAM
Needed RAM = number_of_workers * ( (light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation) )
If you do not know how many CPUs you have on your system, use the following grep command:
$ grep -c ^processor /proc/cpuinfo
Let’s say you have a system with 4 CPU cores, 8 GB of RAM memory, and 30 concurrent Odoo users.
30 users / 6 = **5** (5 is theoretical number of workers needed )
(4 * 2) + 1 = **9** ( 9 is the theoretical maximum number of workers)
Based on the calculation above, you can use 5 workers + 1 worker for the cron worker that is a total of 6 workers.
Calculate the RAM memory consumption based on the number of workers:
RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM
The calculation shows that the Odoo installation will need around 2GB of RAM.
To switch to multiprocessing mode, open the configuration file and append the calculated values:
/etc/odoo14.conf
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 1
workers = 5
Restart the Odoo service for the changes to take effect:
$ sudo systemctl restart odoo14
留言