🎯 Público objetivo
DevOps / SysAdmins
Partners de Odoo
CTOs técnicos
Equipos que sufren lentitud, locks o demasiadas conexiones
🧩 Módulo 1 – El problema real de Odoo en producción
Objetivo: Que el lector entienda por qué Odoo se rompe sin PgBouncer.
Artículos:
Cómo Odoo gestiona conexiones a PostgreSQL
Por qué max_connections NO es la solución
Síntomas reales: locks, CPU idle, RAM llena, timeouts
Casos reales de Odoo sin pooler (y cómo fallan)
👉 CTA: “Si tu Odoo tiene más de 20 usuarios concurrentes, este módulo es obligatorio”
🧠 Módulo 2 – PgBouncer explicado para Odoo (sin humo)
Objetivo: Entender PgBouncer solo lo necesario, enfocado a Odoo.
Artículos:
Qué es PgBouncer y qué NO es
Transaction vs Session pooling (por qué Odoo necesita uno específico)
Pooling y ORM de Odoo: interacción real
Arquitectura recomendada Odoo + PgBouncer + PostgreSQL
⚙️ Módulo 3 – Instalación correcta de PgBouncer
Objetivo: Que funcione bien desde el primer arranque.
Artículos:
Instalación en Debian/Ubuntu/RHEL
Configuración base recomendada para Odoo
Usuarios, auth_file y seguridad mínima
SCRAM-SHA-256 explicado (🔥 punto diferencial)
🔐 Módulo 4 – Autenticación segura (SCRAM, TLS y errores comunes)
Objetivo: Evitar configuraciones frágiles o inseguras.
Artículos:
auth_type = scram-sha-256 paso a paso
Errores típicos (no such user, auth failed)
TLS entre Odoo y PgBouncer (cuándo vale la pena)
Debugging de auth en PgBouncer
🚀 Módulo 5 – Optimización avanzada para alta carga
Objetivo: Sacar el máximo rendimiento real.
Artículos:
Cómo calcular default_pool_size
Relación entre workers de Odoo y PgBouncer
Impacto de cron jobs y long transactions
Cómo evitar starvation y deadlocks
📊 Módulo 6 – Observabilidad y debugging
Objetivo: Ver lo que realmente está pasando.
Artículos:
SHOW POOLS; explicado
Métricas clave que debes vigilar
Logs de PgBouncer que sí importan
Cómo detectar saturación antes de que el usuario la note
🧪 Módulo 7 – Casos reales y benchmarks
Objetivo: Demostrar resultados medibles.
Artículos:
Antes vs después (latencia, conexiones, RAM)
Odoo 16–19 con PgBouncer
Errores reales de producción y cómo se resolvieron
Checklist final de producción
📌 Módulo 8 – Checklist final y arquitectura recomendada
Objetivo: Que el lector se vaya con una guía clara.
Incluye:
Checklist imprimible
Configuración recomendada por tamaño de empresa
Errores que NO debes cometer
Cuándo PgBouncer NO es suficiente
Cómo optimizar Odoo con PgBouncer
Guía profesional para alto rendimiento en producción
🚨 ¿Tu Odoo es lento cuando hay muchos usuarios?
Si tu instancia de Odoo:
se vuelve lenta con pocos usuarios concurrentes
consume mucha RAM sin usar CPU
muestra errores de conexión a PostgreSQL
“se arregla” reiniciando servicios
👉 El problema casi nunca es Odoo. Es la gestión de conexiones a PostgreSQL.
Y ahí es donde entra PgBouncer.
🎯 Qué aprenderás en esta guía
Este curso no es teórico. Está basado en producción real, errores comunes y configuraciones probadas.
Aprenderás a:
Entender por qué Odoo colapsa sin un pooler
Instalar y configurar PgBouncer correctamente para Odoo
Usar SCRAM-SHA-256 sin romper autenticación
Calcular el pool_size ideal
Evitar bloqueos, starvation y timeouts
Monitorear PgBouncer antes de que el usuario note el problema
Diseñar una arquitectura sólida Odoo + PgBouncer + PostgreSQL
🧠 Por qué Odoo necesita PgBouncer
Odoo abre muchas conexiones simultáneas a PostgreSQL.
PostgreSQL no está diseñado para miles de conexiones activas.
Sin PgBouncer:
Aumentar max_connections solo empeora el problema
Cada conexión consume memoria
Aparecen locks, latencia y timeouts
El sistema escala mal
Con PgBouncer:
Menos conexiones reales
Menor uso de RAM
Mejor latencia
Escalabilidad real
🧩 Contenido del curso
🔹 Módulo 1 – Problemas reales de rendimiento en Odoo
Identifica cuándo Odoo ya está fallando aunque “todavía funcione”.
Por qué Odoo es lento con muchos usuarios
Cómo Odoo gestiona conexiones a PostgreSQL
Errores comunes al subir max_connections
Señales claras de que necesitas PgBouncer
🔹 Módulo 2 – PgBouncer explicado para Odoo
Solo lo que importa. Sin teoría innecesaria.
Qué es PgBouncer y cómo funciona
PgBouncer vs conexiones directas
pool_mode: session vs transaction
Qué modo funciona mejor con Odoo
🔹 Módulo 3 – Instalación y configuración
Configuración lista para producción.
Instalación de PgBouncer en Linux
Configuración base optimizada
Conexión correcta entre Odoo y PgBouncer
Errores comunes al arrancar
🔹 Módulo 4 – Seguridad y autenticación
Evita configuraciones frágiles o inseguras.
SCRAM-SHA-256 paso a paso
Errores de autenticación comunes
SSL/TLS: cuándo usarlo y cuándo no
🔹 Módulo 5 – Optimización avanzada
Aquí es donde se gana rendimiento real.
Cálculo del pool_size ideal
Relación entre workers de Odoo y PgBouncer
Cron jobs y transacciones largas
Cómo evitar starvation y bloqueos
🔹 Módulo 6 – Monitoring y debugging
Observabilidad real, no suposiciones.
Métricas clave de PgBouncer
SHOW POOLS, SHOW STATS explicados
Detección temprana de saturación
🔹 Módulo 7 – Casos reales y benchmarks
Datos reales, no marketing.
Antes vs después de PgBouncer
Errores reales en producción
Qué salió mal y cómo se corrigió
🔹 Módulo 8 – Arquitectura final y checklist
Para ir a producción con confianza.
Arquitectura recomendada
Checklist final
Cuándo PgBouncer no es suficiente
👤 ¿Para quién es este curso?
Este contenido es para ti si:
Administras Odoo en producción
Tienes más de 20 usuarios concurrentes
Eres partner, sysadmin o DevOps
Quieres rendimiento estable, no parches
❌ No es para instalaciones de prueba o demos.
🚀 Resultado esperado
Después de aplicar esta guía:
Odoo responde mejor bajo carga
PostgreSQL usa menos RAM
Menos reinicios de emergencia
Escalabilidad real
Infraestructura predecible