En el PgIbz hice una presentación de esto: https://github.com/3manuek/slides/blob/master/2019/pgibz/Pooling%20Performance.pdf
Básicamente, la sumatoria de conexiones activas de cada PgBouncer, no debería ser mayor a (más o menos) a la capacidad del endpoint. Esto es varia mucho dependiendo el tipo de complejidad en las transacciones, latencia y consumo de CPU/IO por parte de las operaciones. Por lo general, suponiendo transacciones muy eficientes, sin roundtrip y con un consumo >99% de CPU, la cantidad de conexiones activas en el endpoint no deberías superar la cantidad de threads disponibles. Si el consumo, por el contrario es menor y hay mayor asincronicidad respecto a IO, es posible tener un número mayor, debido a que el mecanismo del kernel permite operaciones async en el background. Yo empezaría por: ver cual es la capacidad de tus endpoints (leader y replicas) en cuanto a cual es el mejor rendimiento respecto a la cantidad de transacciones activas y, tratar de inferir el uso de CPU promedio en tus transacciones. A mayor cantidad de pooles, hay que limitar el pool_size de cada uno, para que la sumatoria no supere este "soft threshold". El lun., 16 sept. 2019 a las 13:50, Edwin Quijada (< listas_quij...@hotmail.com>) escribió: > Hola > Tengo una aplicacion que corre en un server hecha en Java, esta corre > varias instancias,10, contra el mismo motor de BD, el problema es que cada > instancia, como maneja un pool de conexiones, abre 10 conexiones al motor y > 10x10 son 100 conexiones por eso quiero poner un pg_bouncer que maneje > todas las conexiones hacia el motor que vienen desde las diferentes > aplicaciones > Puedo usar el bouncer para esto ? > No tengo experiencia con pools desde fuera solo desde la app > > -- -- Emanuel Calvo 3manuek.com