I have been testing running Odoo in both threaded (workers = 0) and multiprocess mode (workers > 0). My environment has 4 cpus so I have set workers = 9 (# of cpu x 2 +1). The user interfaces is much less responsive in multiprocess mode. And some tasks even timeout in multiprocess mode (ie adding several modules at once). I have also tested using fewer workers (workers = 5) and the UI is a bit more responsive but still much slower than threaded mode.
The Odoo documentation says that multiprocess is meant for production use. Why would this mode be slower?
Check in the log if the instances are restarting. The way the multithreaded server works, if the thread reaches the resources limit, the trhead is killed and new thread is created. This sequence of killing and recrating new threads is what ususally makes the multi-worker server slow.
The parameters to controll the resources which you would need to adjust in order to tunethe multiinstance are:
In my experiance the OS X and FreeBSD require the memory limits to be set more higher than on lynux in order to improve the performance.
I did the same with an Amazon instance (single core, 2GB RAM), I set the workers at 4, and also some others parameters:
- workers = 4
- limit_time_real = 300
- limit_time_cpu = 300
The last 2 parameters are the time limit for each request (correct me if I'm wrong) and CPU usage per request.
In my case, it works much more smooth than before.
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 1/19/15, 11:45 AM|
|Seen: 2126 times|
|Last updated: 3/16/15, 8:10 AM|