Ir al contenido

Optimización

21 de junio de 2026 por
Optimización
Juan Manuel De Castro
| Todavía no hay comentarios

🚨 El síntoma clásico

Odoo funciona bien… hasta que:

  • entran varios usuarios al mismo tiempo

  • se ejecutan acciones pesadas (facturación, inventario, reportes)

  • los cron jobs empiezan a correr

Entonces aparecen:

  • pantallas que tardan en cargar

  • formularios que “se quedan pensando”

  • usuarios que culpan al servidor o a Odoo

👉 Pero el problema casi nunca es CPU ni RAM.

🧠 El error más común: pensar en Odoo como una app web normal

Odoo no funciona como una web típica.

Cada request:

  • pasa por el ORM

  • abre una transacción

  • mantiene una conexión activa a PostgreSQL

Con pocos usuarios no pasa nada.

Con muchos usuarios el modelo colapsa.


🔌 Cómo Odoo usa PostgreSQL realmente

Odoo:

  • mantiene una conexión por worker

  • cada request puede retener esa conexión durante toda la transacción

  • no reutiliza conexiones eficientemente

Resultado:

  • muchas conexiones abiertas

  • PostgreSQL saturado aunque el CPU esté idle

👉 Aquí explico el detalle técnico:

Cómo Odoo gestiona las conexiones a PostgreSQL

❌ La falsa solución: subir max_connections

Cuando Odoo empieza a fallar, muchos hacen esto:

max_connections = 500

Esto:

  • NO mejora el rendimiento

  • aumenta consumo de memoria

  • empeora el scheduling interno de PostgreSQL

  • hace el sistema menos estable

👉 Subir conexiones es retrasar el problema, no resolverlo.


🧨 Lo que realmente está pasando

PostgreSQL:

  • crea un proceso por conexión

  • asigna memoria por conexión

  • escala mal con cientos de conexiones

Odoo:

  • abre demasiadas conexiones

  • no las suelta rápido

  • genera contención interna

Resultado:

CPU baja, RAM alta, Odoo lento.

📉 Síntomas claros en producción

Si ves alguno de estos:

  • errores too many connections

  • latencia intermitente

  • Odoo “se arregla” al reiniciar

  • PostgreSQL con muchos procesos idle

👉 Tu problema es gestión de conexiones.

🧩 La solución real: pooling de conexiones

La solución no es:

  • más RAM

  • más CPU

  • más max_connections

La solución es:

Controlar cuántas conexiones reales llegan a PostgreSQL.

Ahí entra PgBouncer.

🚀 Qué hace PgBouncer por Odoo

PgBouncer:

  • recibe miles de conexiones lógicas

  • mantiene pocas conexiones reales

  • reutiliza conexiones eficientemente

  • reduce uso de memoria

  • estabiliza latencia

👉 En el próximo capítulo explicamos qué es PgBouncer y por qué Odoo lo necesita.

🔗 Enlaces relacionados

📌 Conclusión

Si tu Odoo es lento con muchos usuarios:

  • no es magia

  • no es “Odoo malo”

  • no es falta de hardware

Es arquitectura.

Y la arquitectura correcta empieza controlando las conexiones.

Optimización
Juan Manuel De Castro 21 de junio de 2026
Menos tareas repetitivas. Más Inteligencia Artificial.
Compartir
Etiquetas
Archivo
Iniciar sesión dejar un comentario