Re: PgBouncer con varias aplicaciones Java

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: Emanuel Calvo <3manuek(at)gmail(dot)com>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: PgBouncer con varias aplicaciones Java
Date: 2019-09-17 15:02:24
Message-ID: BL0PR1501MB2017225CC6B2946F4980D3B2E38F0@BL0PR1501MB2017.namprd15.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Realmente lo que quiero hacer es usar un solo bouncer para todas las aplicaciones y no tener varios

________________________________
De: Emanuel Calvo <3manuek(at)gmail(dot)com>
Enviado: lunes, 16 de septiembre de 2019 13:03
Para: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
CC: pgsql-es-ayuda(at)postgresql(dot)org <pgsql-es-ayuda(at)postgresql(dot)org>
Asunto: Re: PgBouncer con varias aplicaciones Java

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_quijada(at)hotmail(dot)com<mailto:listas_quijada(at)hotmail(dot)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<http://3manuek.com>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Yessica Brinkmann 2019-09-17 15:41:15 Re: SPI_connect
Previous Message Enrique Herrera Noya 2019-09-17 13:57:23 Re: SPI_connect