PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Désactivation du regroupement de connexions dans Rails pour utiliser PgBouncer

TLDR ; ne changez rien

La mise en commun dans les rails est différente de la mise en commun dans PGBouncer. Le pool de connexions rails est un groupe de connexions disponibles pour n'importe quel thread de ce processus, généralement une seule. Chaque connexion de votre pool rails aura une connexion à votre base de données postgres, ou PGBouncer si elle se trouve devant postgres. Dans une grande application Rails, vous exécuterez plusieurs processus Rails sur chaque serveur et plusieurs serveurs derrière un équilibreur de charge. Quelque chose comme ça :

Sans PGBouncer, chaque connexion à postgres crée un nouveau processus postgres. À grande échelle, vous souhaiterez limiter le nombre de processus postgres qui s'exécutent afin de ne pas maximiser le processeur et la mémoire. PGBouncer regroupe les connexions de tous vos pools de rails sur tous les processus et tous les serveurs, et bascule efficacement entre eux.