Calculadora del tamaño del pool de conexiones

Introduce los núcleos de CPU y los discos del servidor de base de datos, cuántas instancias de la aplicación lo comparten, y tu ritmo de consultas y su tiempo medio. La calculadora da el tamaño de partida clásico, el pool de cada instancia y cuántas conexiones mantiene ocupadas tu carga de media.

/s
ms
Tamaño del pool, todas las instancias17
Tamaño del pool por instancia9
Conexiones ocupadas de media
6
Uso del pool
35,3 %

Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.

Cómo usarla

  1. Introduce los núcleos de CPU del servidor de base de datos (físicos, sin hyper-threading) y el número de discos con los datos.
  2. Introduce cuántas instancias de la aplicación (pods, procesos) usan la base de datos.
  3. Introduce el ritmo total de consultas y el tiempo medio que una consulta mantiene su conexión, con los viajes de red y el tiempo dentro de la transacción.

Fórmulas

  • Pool total = núcleos × 2 + discos efectivos
  • Por instancia = ceil(pool total ÷ instancias)
  • Conexiones ocupadas (ley de Little) = consultas por segundo × tiempo de consulta en segundos
  • Uso = ocupadas ÷ pool total

Ejemplo resuelto

Una base de datos con 8 núcleos y 1 disco, usada por 2 instancias a 400 consultas por segundo de 15 ms:

  • Pool total: 8 × 2 + 1 = 17.
  • Por instancia: ceil(17 ÷ 2) = 9.
  • Ocupadas: 400 × 0,015 = 6 conexiones; uso 6 ÷ 17 = 35,3 %.

Consejos

  • Por encima del 100 % las consultas hacen cola. Antes de añadir conexiones, acelera las consultas o acorta el tiempo que las transacciones retienen la conexión.
  • Cuenta todos los clientes. Workers en segundo plano, tareas cron y herramientas de administración gastan el mismo límite de la base de datos (max_connections en PostgreSQL).
  • Mantén el pool fijo. Si el mínimo de conexiones inactivas es igual al máximo, no habrá picos de latencia cuando el pool tenga que abrir conexiones nuevas bajo carga.

Preguntas frecuentes

¿Qué fórmula se usa para el tamaño del pool de conexiones?

Un punto de partida muy citado, de la wiki de PostgreSQL y la documentación de HikariCP, es conexiones = (núcleos × 2) + discos efectivos, con los núcleos del servidor de base de datos. Para 8 núcleos y un disco: 8 × 2 + 1 = 17 conexiones.

¿La fórmula es por aplicación o para toda la base de datos?

Para toda la base de datos. Si se conectan varias instancias, se reparten ese número: 17 conexiones entre 2 instancias son 9 cada una redondeando hacia arriba. Dar a cada instancia sus propias 17 duplicaría la carga sobre la base de datos.

¿Qué cuenta como disco (spindle) en un SSD?

Los spindles representan discos que pueden buscar en paralelo. Con SSD o con datos que caben en memoria, las esperas de E/S son cortas y ese término pesa poco; mucha gente usa 0 o 1. Toma el resultado como punto de partida y mide.

¿Por qué un pool pequeño suele ser más rápido?

Un núcleo de CPU ejecuta una consulta a la vez. Con muchas más conexiones activas que núcleos, la base de datos pierde tiempo cambiando entre ellas y peleando por bloqueos y disco. Un pool pequeño con una cola corta en la aplicación suele dar menos latencia que cientos de conexiones.

Más en Desarrollo

Todas las herramientas de la categoría: Desarrollo ·Actualizado el 7 de noviembre de 2026

Opciones de privacidad

Google Analytics nos muestra qué herramientas se usan y si funcionan. Puede usar cookies. Tu elección se guarda en este navegador.