pgday campinas 2016 - pgbouncer

35
PgBouncer Felipe Pereira

Upload: felipe-santos

Post on 15-Apr-2017

68 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: PgDay Campinas 2016 - PgBouncer

PgBouncer

Felipe Pereira

Page 2: PgDay Campinas 2016 - PgBouncer

SEGURANÇA

DISASTERRECOVERY

POOL DECONEXÕES

OPENSOURCE

DESEMPENHO

PGBOUNCER

ARQUITETURA

Page 3: PgDay Campinas 2016 - PgBouncer

Segurança

Page 4: PgDay Campinas 2016 - PgBouncer

Segurança

Usuário possui a senha do banco de dados

Usuário acessa o IP do banco de dados

Usuário é Super User

Page 5: PgDay Campinas 2016 - PgBouncer

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

Page 6: PgDay Campinas 2016 - PgBouncer

SegurançaArquitetura de acesso

Page 7: PgDay Campinas 2016 - PgBouncer
Page 8: PgDay Campinas 2016 - PgBouncer

SegurançaNo Banco de Dados:

No .userlist:

Page 9: PgDay Campinas 2016 - PgBouncer

Segurança

No pgbouncer.ini:

Page 10: PgDay Campinas 2016 - PgBouncer
Page 11: PgDay Campinas 2016 - PgBouncer

Segurança

No pgbouncer.ini:

Page 12: PgDay Campinas 2016 - PgBouncer

Disaster Recovery

Page 13: PgDay Campinas 2016 - PgBouncer

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.

Page 14: PgDay Campinas 2016 - PgBouncer

Disaster Recovery

Page 15: PgDay Campinas 2016 - PgBouncer
Page 16: PgDay Campinas 2016 - PgBouncer

Configuração padrão:

Page 17: PgDay Campinas 2016 - PgBouncer
Page 18: PgDay Campinas 2016 - PgBouncer

Nova configuração:

Reload Online:

Page 19: PgDay Campinas 2016 - PgBouncer

Pool de Conexões

Page 20: PgDay Campinas 2016 - PgBouncer

Pool de Conexões

Desperdício de conexões

Desperdício de recursos

Escalonamento

Performance

Page 21: PgDay Campinas 2016 - PgBouncer

Desperdício de Conexões

Page 22: PgDay Campinas 2016 - PgBouncer

Desperdício de Recursos

Page 23: PgDay Campinas 2016 - PgBouncer

Escalonamento

Page 24: PgDay Campinas 2016 - PgBouncer

Performance

-10% / +40%

Page 25: PgDay Campinas 2016 - PgBouncer

Session x Transaction x Statement

Page 26: PgDay Campinas 2016 - PgBouncer

Transaction

Tabelas temporárias que guardam estado de sessão

CURRVAL de Sequences utilizadas em transações anteriores

Plugins/Extensions

Page 27: PgDay Campinas 2016 - PgBouncer

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

Page 28: PgDay Campinas 2016 - PgBouncer

Cache de Conexões

0.03ms 0.06ms 0.74ms

Page 29: PgDay Campinas 2016 - PgBouncer

ONDE INSTALAR?

Page 30: PgDay Campinas 2016 - PgBouncer

Onde Instalar?

731

694

739

406

Page 31: PgDay Campinas 2016 - PgBouncer

CONFIGURAÇÕES

Page 32: PgDay Campinas 2016 - PgBouncer

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_SizeO tamanho máximo do pool para cada banco de dados configurado.

Min_Pool_SizeÉ a quantidade de conexões que o Bouncer

Max_Db_ConnectionsNúmero máximo de conexões ao servidor de banco de dados,

independentemente da quantidade de pools configurada para o mesmo db/server.

Page 33: PgDay Campinas 2016 - PgBouncer

Configurações

Server_LifetimeO PgBouncer irá matar as conexões que existirem por mais tempo do

que o configurado neste parâmetro (em segundos).

Server_Idle_TimeoutSe a conexão estiver Idle por mais do que o configurado neste

parâmetro, a mesma será encerrada.

Client_Login_TimeoutA conexão do cliente ao PgBouncer será encerrada se o login não for

feito dentro do tempo configurado (em segundos).

Page 34: PgDay Campinas 2016 - PgBouncer

Configurações Perigosas

Query_TimeoutQueries que estiverem executando por mais tempo do que o

configurado, serão encerradas. Lembre-se de relatórios, cargas de dados, etc.

Query_Wait_TimeoutAo 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_TimeoutSe a conexão entre cliente e PgBouncer estiver idle por este tempo, a

conexão será derrubada.

Idle_Transaction_TimeoutSe a conexão entre PgBouncer e DB estiver em “idle in transaction” por

este tempo, a conexão será derrubada.

Page 35: PgDay Campinas 2016 - PgBouncer

Obrigado!

Felipe Pereira

[email protected]