Odoo is the world's easiest all-in-one management software. It includes hundreds of business apps:
CRM | e-Commerce | Accounting | Inventory | PoS | Project management | MRP | etc.
Does anybody know the differences between the built-in multiprocessor-mode (started with "openerp-server.py --workers X") and gunicorn?
Relevant properties would be:
- memory limits
- CPU time limits
- dynamic control of the number of worker processes
The following topic uses gunicorn for a high availability deployment: Link
The built-in multiprocess mode is new in v7, and mostly replaces the previous gunicorn-based multiprocess mode of v6.1. It has the same kind of features as v6.1's gunicorn settings, as shown by
$ ./openerp-server --help Usage: openerp-server [options] Options: --version show program's version number and exit -h, --help show this help message and exit (...) Multiprocessing options: --workers=WORKERS Specify the number of workers, 0 disable prefork mode. --limit-memory-soft=LIMIT_MEMORY_SOFT Maximum allowed virtual memory per worker, when reached the worker be reset after the current request (default 671088640 aka 640MB). --limit-memory-hard=LIMIT_MEMORY_HARD Maximum allowed virtual memory per worker, when reached, any memory allocation will fail (default 805306368 aka 768MB). --limit-time-cpu=LIMIT_TIME_CPU Maximum allowed CPU time per request (default 60). --limit-time-real=LIMIT_TIME_REAL Maximum allowed Real time per request (default 120). --limit-request=LIMIT_REQUEST Maximum number of request to be processed per worker (default 8192).
This new built-in multi-process HTTP Server (nicknamed MultiCorn - pun on Unicorn intended) makes deployment easier while reusing the same design principles as Gunicorn: a WSGI-compliant HTTP server with pre-forked worker processes.
It adds a few niceties on top of what was already possible with Gunicorn in v6.1, such as:
- No need to run and manage separately another OpenERP process for executing background OpenERP jobs (
ir.cron). MultiCorn spawns a dedicated
CronWorkerautomatically (controlled by
- The WSGI entry point is now
openerp.wsgi.applicationin v6.1), but v7.0 has a new
openerp-wsgi.pystartup script to make deploying in WSGI containers easier
All the ideas behind the introduction of the multi-process mode in v6.1 still apply.