pgbouncer: pool, segurança e disaster recovery | felipe pereira

35
PgBouncer Felipe Pereira

Upload: pgday-campinas

Post on 15-Apr-2017

224 views

Category:

Technology


2 download

TRANSCRIPT

PgBouncer

Felipe Pereira

SEGURANÇA

DISASTERRECOVERY

POOL DECONEXÕES

OPENSOURCE

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çaArquitetura de acesso

SegurançaNo 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_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.

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).

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.

Obrigado!

Felipe Pereira

[email protected]