Ir al contenido

Síntomas reales en Odoo: locks, CPU idle, RAM llena y timeouts

1 de noviembre de 2025 por
Síntomas reales en Odoo: locks, CPU idle, RAM llena y timeouts
Juan Manuel De Castro
| Todavía no hay comentarios

Empiece a escribir a

🚨 El patrón que se repite en producción

Muchos entornos Odoo muestran lo mismo:

  • CPU casi sin uso

  • RAM alta o llena

  • Odoo lento o congelado

  • usuarios que reportan timeouts

Y la pregunta clásica:

“¿Por qué va lento si el servidor no está al límite?”

La respuesta suele estar en PostgreSQL y las conexiones.


🔒 Síntoma 1 – Locks que bloquean todo

En producción aparecen:

  • operaciones que no terminan

  • usuarios esperando sin feedback

  • crons que se acumulan

En PostgreSQL ves:

SELECT * FROM pg_locks;

Y notas:

  • locks esperando

  • locks en cascada

  • transacciones que no avanzan

👉 Una transacción lenta en Odoo puede bloquear muchas más.


🧠 Por qué pasa esto

Odoo:

  • agrupa muchas operaciones en una sola transacción

  • mantiene locks más tiempo del esperado

  • usa el ORM de forma intensiva

Si además:

  • hay muchas conexiones abiertas

  • no hay pooling

👉 el sistema se vuelve frágil.


💤 Síntoma 2 – CPU idle pero sistema lento

Este síntoma confunde mucho.

Ves:

  • CPU al 10–20 %

  • load bajo

  • discos bien

Pero Odoo:

  • tarda

  • se congela

  • hace esperar al usuario

¿Por qué?

  • los procesos no están trabajando

  • están esperando recursos

  • principalmente conexiones o locks


🧠 PostgreSQL esperando a PostgreSQL

Con muchas conexiones:

  • PostgreSQL pasa más tiempo coordinando procesos

  • menos tiempo ejecutando queries

  • más context switching

👉 CPU libre no significa sistema sano.


🧠 Síntoma 3 – RAM llena (aunque “todo esté idle”)

En PostgreSQL:

  • cada conexión reserva memoria

  • incluso cuando está idle

Si tienes:

  • 200 conexiones

  • 10 MB por conexión

👉 2 GB de RAM solo en conexiones.

Esto provoca:

  • presión de memoria

  • swapping

  • latencia impredecible


⏱️ Síntoma 4 – Timeouts intermitentes

Odoo empieza a mostrar:

  • errores de timeout

  • pantallas que nunca cargan

  • sesiones que “se caen”

Pero:

  • no siempre

  • no todos los usuarios

  • no siempre lo mismo

Eso es típico de:

  • pools saturados

  • conexiones retenidas

  • transacciones largas



🔍 Cómo confirmar que este es tu problema

En PostgreSQL

SELECT state, count(*)
FROM pg_stat_activity
GROUP BY state;

Mala señal:

  • muchas idle

  • varias idle in transaction

En el sistema

  • CPU baja

  • RAM alta

  • procesos PostgreSQL numerosos


🧩 El patrón completo

Si tienes:

  • locks

  • CPU idle

  • RAM llena

  • timeouts

👉 No es hardware

👉 No es Odoo “mal hecho”

👉 Es arquitectura de conexiones


🚀 La salida del bucle

Para romper este patrón necesitas:

  • limitar conexiones reales

  • reutilizarlas bien

  • liberar memoria

  • reducir contención

Eso no se logra:

  • subiendo max_connections

  • reiniciando servicios

Se logra con:

  • PgBouncer

  • configuración correcta

  • pools bien dimensionados


🔗 Enlaces relacionados


📌 Conclusión

Estos síntomas no son casualidad.

Son señales claras de que:

PostgreSQL está haciendo malabares con demasiadas conexiones.

La buena noticia:

  • no necesitas más hardware

  • necesitas mejor arquitectura

Y eso empieza controlando las conexiones aquí...

Capítulo siguiente ->

Síntomas reales en Odoo: locks, CPU idle, RAM llena y timeouts
Juan Manuel De Castro 1 de noviembre de 2025
Compartir
Etiquetas
Archivo
Iniciar sesión dejar un comentario