PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Desabilitando o pool de conexões no Rails para usar o PgBouncer


TLDR; não mude nada

O pooling no rails é diferente do pooling no PGBouncer. O pool de conexões Rails é um grupo de conexões disponíveis para qualquer thread dentro desse processo, geralmente apenas 1. Cada conexão em seu pool Rails terá uma conexão com seu banco de dados postgres, ou PGBouncer se estiver na frente do postgres. Em um aplicativo Rails grande, você executará vários processos Rails em cada servidor e vários servidores atrás de um balanceador de carga. Algo assim:



Sem o PGBouncer, toda conexão com o postgres cria um novo processo postgres. Em escala, você desejará limitar o número de processos postgres executados para não maximizar a CPU e a memória. O PGBouncer agrupa conexões de todos os seus pools de trilhos em todos os processos e todos os servidores, e alterna eficientemente entre eles.