PgBouncer
Felipe Pereira
SEGURANÇA
DISASTER
RECOVERY
POOL DE
CONEXÕES
OPEN
SOURCE
DESEMPENHO
PGBOUNCER
ARQUITETURA
Segurança
Segurança
Usuário possui a senha do banco de dados
Usuário acessa o IP do banco de dados
Usuário é Super User
Segurança
Usuário não possui a senha do banco de dados
Usuário não acessa o IP do banco de dados
Usuário não é Super User
Segurança
Arquitetura de acesso
Segurança
No Banco de Dados:
No .userlist:
Segurança
No pgbouncer.ini:
Segurança
No pgbouncer.ini:
Disaster Recovery
Disaster Recovery
Single Point of Failure
O ponto único de falha é responsável pela
fraqueza de toda a estratégia de DR e por isso
deve ser evitado.
Disaster Recovery
Configuração padrão:
Nova configuração:
Reload Online:
Pool de Conexões
Pool de Conexões
Desperdício de conexões
Desperdício de recursos
Escalonamento
Performance
Desperdício de Conexões
Desperdício de Recursos
Escalonamento
Performance
-10% / +40%
Session x Transaction x Statement
Transaction
Tabelas temporárias que guardam estado de sessão
CURRVAL de Sequences utilizadas em transações anteriores
Plugins/Extensions
Cache de Conexões
Tráfego de rede
Um ponto a mais na arquitetura
Overhead de iniciar uma conexão
Autenticação
Criação de processo no servidor
Cache de Conexões
0.03ms 0.06ms 0.74ms
ONDE
INSTALAR?
Onde Instalar?
731
694
739
406
CONFIGURAÇÕES
Configurações
Max_Client_Conn
É o máximo de client connections permitido da aplicação para o
PgBouncer. Lembrar de configurar também o file descriptor limit.
Default_Pool_Size
O tamanho máximo do pool para cada banco de dados configurado.
Min_Pool_Size
É a quantidade de conexões que o Bouncer
Max_Db_Connections
Número máximo de conexões ao servidor de banco de dados,
independentemente da quantidade de pools configurada para o mesmo
db/server.
Configurações
Server_Lifetime
O PgBouncer irá matar as conexões que existirem por mais tempo do
que o configurado neste parâmetro (em segundos).
Server_Idle_Timeout
Se a conexão estiver Idle por mais do que o configurado neste
parâmetro, a mesma será encerrada.
Client_Login_Timeout
A conexão do cliente ao PgBouncer será encerrada se o login não for
feito dentro do tempo configurado (em segundos).
Configurações Perigosas
Query_Timeout
Queries que estiverem executando por mais tempo do que o
configurado, serão encerradas. Lembre-se de relatórios, cargas de dados, etc.
Query_Wait_Timeout
Ao ser enfileirada para esperar a execução, a query irá esperar o tempo
configurado neste parâmetro, após isso será morta. Se desabilitado, as
queries esperam em fila indefinidamente.
Client_Idle_Timeout
Se a conexão entre cliente e PgBouncer estiver idle por este tempo, a
conexão será derrubada.
Idle_Transaction_Timeout
Se a conexão entre PgBouncer e DB estiver em “idle in transaction” por
este tempo, a conexão será derrubada.
Obrigado!
Felipe Pereira
felipe.pereira@dextra.com.br

PgDay Campinas 2016 - PgBouncer