La intuición equivocada#
Si una conexión ejecuta trabajo, cien conexiones deberían ejecutar cien veces más. En una base de datos el paralelismo compite por CPU, memoria, locks y almacenamiento. Después de cierto punto, cada conexión adicional aumenta la espera.
Diseñar el experimento#
Ejecuta la misma carga con tamaños de pool crecientes y registra throughput, latencia y utilización del servidor.
pool: 5, 10, 20, 40, 80
clients: 200
duration: 5 minutes
Señales de saturación#
- El throughput deja de crecer.
- La latencia p95 aumenta rápidamente.
- CPU o I/O permanecen cerca del límite.
- Crecen los tiempos de espera por locks.
Configurar con margen#
El valor correcto suele estar antes del pico absoluto. Deja capacidad para migraciones, tareas internas y variaciones de tráfico. Si existen muchas instancias de aplicación, calcula el total de conexiones, no solamente el pool de una instancia.
Conclusión#
El pool protege la base de datos y aplica backpressure. Su objetivo no es abrir tantas conexiones como sea posible, sino mantener el sistema en una zona eficiente y predecible.
