Parte de nuestra serie Performance & Scalability
Leer la guía completaOptimización del rendimiento de PostgreSQL para Odoo: ajuste, indexación y monitoreo
Una instancia de PostgreSQL correctamente ajustada puede mejorar los tiempos de respuesta de Odoo entre 2 y 5 veces en comparación con la configuración predeterminada. La mayoría de los problemas de rendimiento de Odoo se remontan a la configuración de la base de datos: la configuración predeterminada de PostgreSQL está diseñada para un uso mínimo de recursos, no para alimentar un sistema ERP multiusuario.
Conclusiones clave
- La configuración predeterminada de PostgreSQL usa solo 128 MB de buffers compartidos; la producción de Odoo necesita el 25 % de RAM
- Los índices faltantes en las columnas consultadas con frecuencia provocan análisis completos de la tabla y cargas de página lentas.
- La agrupación de conexiones con PgBouncer reduce la sobrecarga de conexión de la base de datos en un 80%
- VACUUM y ANALYZE regulares previenen la hinchazón de la tabla y mantienen los planes de consulta óptimos
Ajuste de configuración de PostgreSQL
Configuración de memoria
Edite postgresql.conf con la configuración adecuada para su hardware. Para un servidor con 16 GB de RAM, configure los búferes compartidos en 4 GB (25 % del RAM total), el tamaño de caché efectivo en 12 GB (75 % del RAM total), el work_mem en 64 MB por operación, el mantenimiento_work_mem en 1 GB y el wal_buffers en 64 MB.
Para la planificación de consultas, establezca random_page_cost en 1.1 para almacenamiento SSD (el valor predeterminado 4.0 supone HDD), Effective_io_concurrency en 200 para SSD y default_statistics_target en 200 para planes de consulta más precisos.
Pautas de tallas:
| RAM del servidor | buffers_compartidos | tamaño_caché_efectivo | memoria_trabajo |
|---|---|---|---|
| 4GB | 1GB | 3GB | 16MB |
| 8GB | 2GB | 6GB | 32MB |
| 16GB | 4GB | 12GB | 64MB |
| 32GB | 8GB | 24GB | 128MB |
| 64 GB | 16GB | 48GB | 256 MB |
Configuración de conexión
Establezca max_connections en al menos trabajadores de Odoo x 2 más el búfer. Con 4 trabajadores y 2 subprocesos cron, necesitas al menos 12 conexiones. Agregue conexiones para herramientas de administración, monitoreo y tareas en segundo plano. Un valor de 200 proporciona un cómodo espacio para la cabeza.
Estrategias de indexación para Odoo
Identificar índices faltantes
Habilite el registro de consultas lento configurando log_min_duration_statement en 500 ms. Luego analice el registro de consultas lentas para identificar escaneos completos de la tabla.
Índices comunes de Odoo
Odoo crea índices en claves primarias y claves externas automáticamente. Agregue índices en columnas filtradas con frecuencia como sale_order(state), account_move(state), stock_move(state), account_move(date) y sale_order(date_order).
Los índices de varias columnas mejoran las combinaciones de filtros comunes: account_move_line(account_id, date) y stock_quant(product_id, location_id).
Para tablas con columnas de estado, los índices parciales en registros activos son más eficientes: indexe solo las filas donde el estado no está cancelado ni finalizado.
Análisis de consultas con EXPLAIN ANALYZE
Ejecute EXPLAIN (ANALYZE, BUFFERS) en consultas lentas para comprender los planes de ejecución. Busque:
- Seq Scan: escaneo completo de la tabla que indica que falta un índice
- Bucle anidado: puede resultar costoso con conjuntos de resultados grandes
- Ordenar: los ordenamientos en memoria exceden el derrame de work_mem en el disco.
- Lectura de buffers compartidos: los valores altos significan que los datos no se almacenan en caché
Asesinos comunes del rendimiento:
- Faltan índices en las columnas de la cláusula WHERE
- Cláusulas IN grandes generadas por Odoo ORM
- Campos calculados almacenados que activan el recálculo en escrituras
- Consultas de informes complejas que unen más de 5 tablas
ASPIRACIÓN y Mantenimiento
PostgreSQL MVCC crea tuplas muertas cuando se actualizan o eliminan filas. VACUUM recupera este espacio y actualiza las estadísticas.
Configure el vacío automático para cargas de trabajo de Odoo: habilite el vacío automático con 3 trabajadores como máximo, una siesta de 60 segundos, un factor de escala de vacío de 0,05 y analice un factor de escala de 0,02. Para tablas de alta escritura (account_move_line, stock_move, mail_message), establezca configuraciones por tabla más agresivas.
Supervise la inflación de la tabla comprobando el tamaño total de las relaciones y el recuento de tuplas muertas. Utilice VACUUM FULL solo para hinchazón extrema (más del 50% de espacio muerto) y solo durante las ventanas de mantenimiento, ya que bloquea la mesa.
Agrupación de conexiones con PgBouncer
PgBouncer se encuentra entre Odoo y PostgreSQL, agrupando conexiones para reducir la sobrecarga. Utilice el modo de grupo de transacciones para Odoo, que libera conexiones entre transacciones. Establezca default_pool_size en 40 y max_client_conn en 200. Apunte Odoo al puerto PgBouncer en lugar de PostgreSQL directamente.
Monitoreo
Métricas esenciales
- Conexiones activas: debe permanecer muy por debajo de max_connections
- Proporción de aciertos de caché: debe estar por encima del 99%
- Tasa de transacción: punto de referencia y atento a anomalías
- Recuento de consultas lento: consultas que superan su umbral
- Retraso de replicación: si se utilizan réplicas de lectura
- Uso de disco: tasa de crecimiento del tamaño de la base de datos
- Inflación de tabla: Proporción de tuplas muertas por tabla
Utilice la extensión pg_stat_statements para realizar un seguimiento del rendimiento de las consultas a lo largo del tiempo. Registra el recuento de ejecución, el tiempo total, el tiempo medio y las filas devueltas para cada patrón de consulta distinto.
Preguntas frecuentes
P: ¿Cómo sé si PostgreSQL es el cuello de botella?
Habilite el registro de consultas lento y verifique los registros de rendimiento de Odoo. Si la mayoría de las solicitudes lentas corresponden a consultas lentas, el ajuste será útil. Si las consultas son rápidas pero Odoo es lento, el cuello de botella está en el código de la aplicación o en la red.
P: ¿Debo usar réplicas de PostgreSQL para Odoo?
Las réplicas de lectura descargan consultas de informes de la base de datos principal. Odoo no admite de forma nativa la división de lectura/escritura, por lo que la configuración personalizada enruta consultas de solo lectura a las réplicas. Esto es principalmente útil para implementaciones muy grandes.
P: ¿Qué versión de PostgreSQL debo usar con Odoo?
Utilice la última versión estable compatible con su versión de Odoo. Las versiones más recientes incluyen mejoras en el optimizador de consultas y un mejor rendimiento del vacío. Se recomienda PostgreSQL 16 o 17 para las versiones actuales de Odoo.
P: ¿En qué medida ayuda realmente un ajuste adecuado?
Según nuestra experiencia, pasar de la configuración predeterminada a una configuración optimizada generalmente mejora los tiempos promedio de carga de la página entre un 40% y un 60% y reduce la frecuencia de consultas lentas entre un 80% y un 90%. La mejora es dramática e inmediata.
¿Qué sigue?
El ajuste de PostgreSQL es la optimización de mayor impacto para el rendimiento de Odoo. Comience con la configuración de la memoria y la indexación: estos dos cambios por sí solos a menudo reducen los tiempos de respuesta a la mitad.
Comuníquese con ECOSIRE para obtener ayuda sobre la optimización de la base de datos, o explore nuestros servicios de soporte de Odoo para una gestión continua del rendimiento.
Publicado por ECOSIRE: ayuda a las empresas a escalar con soluciones de software empresarial.
Escrito por
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Transforme su negocio con Odoo ERP
Implementación, personalización y soporte experto de Odoo para optimizar sus operaciones.
Artículos relacionados
Segmentación de clientes impulsada por IA: del RFM a la agrupación predictiva
Descubra cómo la IA transforma la segmentación de clientes desde el análisis RFM estático hasta la agrupación predictiva dinámica. Guía de implementación con Python, Odoo y datos reales de ROI.
IA para la optimización de la cadena de suministro: visibilidad, predicción y automatización
Transforme las operaciones de la cadena de suministro con IA: detección de demanda, calificación de riesgos de proveedores, optimización de rutas, automatización de almacenes y predicción de interrupciones. Guía 2026.
Estrategia de comercio electrónico B2B: cree un negocio mayorista en línea en 2026
Domine el comercio electrónico B2B con estrategias de precios mayoristas, gestión de cuentas, condiciones de crédito, catálogos perforados y configuración del portal Odoo B2B.
Más de Performance & Scalability
Depuración y monitoreo de Webhook: la guía completa de solución de problemas
Domine la depuración de webhooks con esta guía completa que cubre patrones de falla, herramientas de depuración, estrategias de reintento, paneles de monitoreo y mejores prácticas de seguridad.
Prueba de carga de k6: pruebe sus API antes del lanzamiento
Domine las pruebas de carga de k6 para las API de Node.js. Cubre aumentos de usuarios virtuales, umbrales, escenarios, HTTP/2, pruebas de WebSocket, paneles de Grafana y patrones de integración de CI.
Configuración de producción de Nginx: SSL, almacenamiento en caché y seguridad
Guía de configuración de producción de Nginx: terminación SSL, HTTP/2, encabezados de almacenamiento en caché, encabezados de seguridad, limitación de velocidad, configuración de proxy inverso y patrones de integración de Cloudflare.
Ajuste del rendimiento de Odoo: PostgreSQL y optimización del servidor
Guía experta para ajustar el rendimiento de Odoo 19. Cubre la configuración, indexación, optimización de consultas, almacenamiento en caché de Nginx y dimensionamiento del servidor de PostgreSQL para implementaciones empresariales.
Odoo vs Acumatica: ERP en la nube para empresas en crecimiento
Comparación de Odoo y Acumatica para 2026: modelos de precios únicos, escalabilidad, profundidad de fabricación y qué ERP en la nube se adapta a su trayectoria de crecimiento.
Prueba y seguimiento de agentes de IA en producción
Una guía completa para probar y monitorear agentes de IA en entornos de producción. Cubre marcos de evaluación, observabilidad, detección de deriva y respuesta a incidentes para implementaciones de OpenClaw.