Aumentar el rendimiento o la velocidad de carga de Odoo.

3,879 views
Skip to first unread message

Nacho

unread,
May 15, 2018, 10:55:33 AM5/15/18
to Usuarios Odoo / OpenERP en España
En la empresa acceden unos 20 usuarios al servidor de Odoo.
Tengo Odoo 9 instalado en un servidor de Linode con estas características:

4 GB (RAM)
2 Cores

Cada vez que un usuario abre Odoo en un navegador, le tarda unos 12-15 segundos en cargar completamente la página.
Cuando cargo Odoo en runbot, tan solo me tarda 3-4 segundos.

Acabamos de migrar la máquina a una más potente de Linode, con el doble de ram y de cores:

8 GB (RAM)
4 Cores

Sin embargo, sigue yendo igual de lento todo.
Tenemos PostgreSQL 9.6

Supongo que el problema está en el fichero de configuración, ya que viene migrado de un openErp 7 y hay muchas opciones que seguro que son mejorables o que directamente sobra.
Voy a explicar lo que he ido probando, pero primero copio todo el fichero tal y como está. (odoo-server.conf):

[options]
admin_passwd
= {{ODOO_ADMIN_PASS}}
db_user
= {{PG_USER}}
db_name
= {{PG_DBNAME}}
dbfilter
= {{ODOO_DB_FILTER}}
db_password
= {{PG_PASS}}
list_db
= {{ODOO_LIST_DB}}

addons_path
= /mnt/extra-addons/l10n-spain,/mnt/extra-addons,/usr/lib/python2.7/dist-packages/openerp/addons
data_dir
= /var/lib/odoo
auto_reload
= False
csv_internal_sep
= ,
db_maxconn
= 64
db_host
= {{PG_HOST}}
db_port
= {{PG_PORT}}
db_template
= template1
pg_path
= None
pidfile
= None
debug_mode
= False
email_from
= False
workers
= 0
limit_memory_hard
= 2684354560
limit_memory_soft
= 2147483648
limit_request
= 8192
limit_time_cpu
= 60
limit_time_real
= 120
log_db
= False
log_db_level
= warning
log_handler
= [':INFO']
log_level
= info
logfile
= None
logrotate
= False
longpolling_port
= 8072
max_cron_threads
= 2
osv_memory_age_limit
= 1.0
osv_memory_count_limit
= False
smtp_password
= False
smtp_port
= 25
smtp_server
= localhost
smtp_ssl
= False
smtp_user
= False
xmlrpc
= True
xmlrpc_interface
=
xmlrpc_port
= 8069
xmlrpcs
= True
xmlrpcs_interface
=
xmlrpcs_port
= 8071
proxy_mode
= True

Veo mucho parámetro que seguramente se pueda eliminar o modificar su valor para mejorar el rendimiento.
Hay 2 bloques que seguro se pueden mejorar:

Bloque de workers + limit_XX:
No me queda nada claro cuántos workers tengo que tener (ahora mismo tengo 0) y cuál es el valor idóneo para los distintos "limit"
Según he leído en la documentación, máximo teórico de workers = (número de CPUs * 2) + 1, con lo cual, en mi caso sería 4*2+1=9.  Pongo 8.
Para los diferentes "limit", tampoco sé cuánto es lo correcto. Pongo 4 GB para memory_hard y  640 MB para memory_soft, que es lo que he visto en un ejemplo de "Odoo Development Cookbook":

workers = 8
# limit_memory_hard: 4GB
limit_memory_hard
= 4294967296
# limit_memory_soft: 640MB
limit_memory_soft
= 671088640


Por otra parte, los parámetros "log_XX":
Creo que log_db_level ya no es necesario, aunque no estoy seguro. Los otros logs, supongo que mejorarán en rendimiento si en lugar de registrar INFO, sólo registran los errores:
log_handler = [':ERROR']
log_level
= error

Con todo esto, parece que mejora un poco la velocidad de carga, pero no sé si los parámetros se pueden mejorar o eliminar algunos innecesarios.

Un saludo
Message has been deleted

Adrián Lara

unread,
May 15, 2018, 9:44:46 PM5/15/18
to Usuarios Odoo / OpenERP en España
Buenas noches, creo que puedes chequear este post,


Y te una recomendacion ngix me va de lo mejor en mi server.

Nacho

unread,
May 16, 2018, 9:39:03 AM5/16/18
to Usuarios Odoo / OpenERP en España
Gracias por la respuesta, Adrián.

El post al que has hecho referencia, lejos de aclarar, confunde más todavía. Me explico:
Se supone que el limit_memory (tanto hard como soft) es el límite de memoria POR WORKER, no en total.
En el ejemplo que pone, utiliza para limit_memory_hard y limit_memory_soft unos valores altísimos, que multiplicados por el número de workers, sobrepasa como 10 veces el tamaño de la RAM.

Además, hay otra cosa que no entiendo por qué la hace:
Con 8 CPUs (cores), el máximo teórico de workers es (8*2)+1=17, sin embargo, utiliza 17 workers, y además le mete max_cron_threads=2. Esto hace un total de 19 "workers", que es más del 17 teórico.
Al principio he pensado que los workers y el max_cron_threads no están relacionados, pero en la documentación oficial de Odoo (https://www.odoo.com/documentation/9.0/setup/deploy.html), tiene un ejemplo de 4 CPUs (9 workers teóricos máximos) y usa 8 workers y luego 1 lo reserva para el max_cron_threads.

También uso nginx, pero eso no hace que me vaya más rápido Odoo.

YusufSalahAdDin

unread,
Jun 8, 2018, 8:32:23 AM6/8/18
to Usuarios Odoo / OpenERP en España
Gracias.

regt...@gmail.com

unread,
Aug 10, 2018, 6:34:34 AM8/10/18
to Usuarios Odoo / OpenERP en España
Buenos dias, yo me encuentro en el mismo mar de dudas que tu estabas. ¿Podrías exponer tus conclusiones si solucionaste tus problemas? Yo en cuanto pongo workers > 0 me va más lento el sistema, he "jugado" con los límites de memoria pero no consigo mejoría.

Pedro Manuel Baeza Romero

unread,
Aug 10, 2018, 6:41:20 AM8/10/18
to Usuarios Odoo / OpenERP en España
Este año di una charla en las jornadas de Odoo sobre rendimiento en el código, aunque hice una primera parte sobre la parte de configuración de Odoo y de PostgreSQL:


Un saludo.

Iron Graterol

unread,
Aug 10, 2018, 7:36:20 AM8/10/18
to openerp-s...@googlegroups.com
Buenos Días , Pedro...
¿Donde esta disponible la presentación para descargar?
(Las diapositivas que presentaste)

Muchas gracias.

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Pedro Manuel Baeza Romero

unread,
Aug 10, 2018, 8:08:15 AM8/10/18
to Usuarios Odoo / OpenERP en España
Aquí las tienes.

Un saludo.
2018-06-14 - Análisis del rendimiento de código en Odoo.pdf

YusufSalahAdDin

unread,
Aug 11, 2018, 7:49:58 AM8/11/18
to openerp-s...@googlegroups.com
Yo también tengo esas dudas.

El 10 de agosto de 2018, 15:07, Pedro Manuel Baeza Romero <pedro...@gmail.com> escribió:
Aquí las tienes.

Un saludo.

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.

Orlando Salomon Melgar

unread,
Aug 11, 2020, 11:43:26 PM8/11/20
to Usuarios Odoo / OpenERP en España
Gracias pedro por compartir, tengo el mismo problema de lentitud en la verisión openerp 7.0, podrías compartirme información para saber como asignar memoria y cpu o es igual con lo que compartes de odoo?, gracias.
Reply all
Reply to author
Forward
0 new messages