top of page

Cách tính CPU và RAM để tối ưu tài nguyên sử dụng cho Odoo

Writer's picture: Tuan NguyenTuan Nguyen


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
1 view0 comments

Recent Posts

See All

留言


 

© 2018 by Tuấn Nguyễn

 Liên hệ tôi
  • Facebook - Black Circle
  • Google+ - Black Circle
bottom of page