pgbouncer: um aglomerador de conexões para postgresql
TRANSCRIPT
![Page 1: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/1.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
pgBouncer: um aglomerador de conexoes paraPostgreSQL
Euler Taveira de Oliveira
PostgreSQL Brasil
24 de abril de 2009
Euler Taveira de Oliveira PGDay SP
![Page 2: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/2.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Resumo
1 Introducao
2 Arquitetura
3 pgBouncer
4 Caso de Sucesso
Euler Taveira de Oliveira PGDay SP
![Page 3: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/3.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Conceito
Aglomerador de Conexoes (connection pooler) e um software quemantem uma cache de conexoes para serem utilizadas emrequisicoes futuras.
Euler Taveira de Oliveira PGDay SP
![Page 4: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/4.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Objetivo
Diminuir impacto de performance causado pela abertura de novasconexoes
Euler Taveira de Oliveira PGDay SP
![Page 5: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/5.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Cenario
consultas de curto prazo
muitos usuarios
Aplicacoes Web
Euler Taveira de Oliveira PGDay SP
![Page 6: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/6.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Cenario
consultas de curto prazo
muitos usuarios
Aplicacoes Web
Euler Taveira de Oliveira PGDay SP
![Page 7: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/7.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Resumo
1 Introducao
2 Arquitetura
3 pgBouncer
4 Caso de Sucesso
Euler Taveira de Oliveira PGDay SP
![Page 8: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/8.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
PostgreSQL
Euler Taveira de Oliveira PGDay SP
![Page 9: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/9.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Conexao
Euler Taveira de Oliveira PGDay SP
![Page 10: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/10.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Arquitetura do Sistema
Euler Taveira de Oliveira PGDay SP
![Page 11: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/11.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Resumo
1 Introducao
2 Arquitetura
3 pgBouncer
4 Caso de Sucesso
Euler Taveira de Oliveira PGDay SP
![Page 12: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/12.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Modos de Operacao
aglomeracao por sessao (session pooling) – gentil
aglomeracao por transacao (transaction pooling)
aglomeracao por comando (command pooling) – agressivo
Euler Taveira de Oliveira PGDay SP
![Page 13: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/13.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Configuracao
arquivo de autenticacao
arquivo de configuracao (formato ini)
Euler Taveira de Oliveira PGDay SP
![Page 14: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/14.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Arquivo de Autenticacao
identico ao $PGDATA/global/pg auth
pode-se utilizar o mesmo arquivo se o pgBouncer estiver namesma maquina do PostgreSQL
Euler Taveira de Oliveira PGDay SP
![Page 15: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/15.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Arquivo de Configuracao
[databases]empresa = host=127.0.0.1 port=5432 dbname=4linux[pgbouncer]listen_addr = 127.0.0.1listen_port = 6432auth_type = md5auth_file = /etc/pgbouncer/userslogfile = /var/log/pgbouncer/pgbouncer.logpidfile = /var/run/pgbouncer/pgbouncer.pidadmin_users = pedrostats_users = joao, mariapool_mode = transactionmax_client_conn = 500default_pool_size = 100
Euler Taveira de Oliveira PGDay SP
![Page 16: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/16.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Arquivo de Configuracao - databases
Secao databases
dbname
host
port
user
password
pool size
client encoding
empresa = host=127.0.0.1 port=5432 dbname=4linux
Euler Taveira de Oliveira PGDay SP
![Page 17: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/17.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Arquivo de Configuracao - pgbouncer
Opcoes Gerais
logfile
auth type (trust, any, plain, crypt e md5)
auth file ($PGDATA/global/pg auth)
pool mode (session, transaction e statement)
admin users
stat users
max client conn
default pool size
reserve pool size
server round robin
Euler Taveira de Oliveira PGDay SP
![Page 18: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/18.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Arquivo de Configuracao - pgbouncer
Opcoes de Log
syslog
syslog facility
log connections
log disconnections
log pooler errors
Euler Taveira de Oliveira PGDay SP
![Page 19: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/19.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Arquivo de Configuracao - pgbouncer
Verificacoes e Tempo de Espera
server reset query (DISCARD ALL)
server check query (SELECT 1)
server idle timeout
server login retry
client login timeout
Euler Taveira de Oliveira PGDay SP
![Page 20: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/20.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Monitoramento
SHOW STATS
SHOW SERVERS
SHOW CLIENTS
SHOW POOLS
SHOW LISTS
SHOW USERS
SHOW DATABASES
SHOW FDS
SHOW CONFIG
Euler Taveira de Oliveira PGDay SP
![Page 21: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/21.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Monitoramento
pgbouncer=# show stats;-[ RECORD 1 ]----+-----------database | benchtotal_requests | 8014total_received | 3121707total_sent | 1527374total_query_time | 1361574602avg_req | 0avg_recv | 0avg_sent | 0avg_query | 0
Euler Taveira de Oliveira PGDay SP
![Page 22: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/22.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Controle de Operacoes
PAUSE: desconecta todos clientes mas espera consultasterminarem;
SUSPEND: para de atender requisicoes;
RESUME: voltar a trabalhar apos comandos PAUSE eSUSPEND;
SHUTDOWN: termina o processo do pgBouncer;
RELOAD: carrega novamente o arquivo de configuracao.
Euler Taveira de Oliveira PGDay SP
![Page 23: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/23.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Controle de Operacoes
pgbouncer=# pause;PAUSEpgbouncer=# resume;RESUMEpgbouncer=# reload;RELOAD
Euler Taveira de Oliveira PGDay SP
![Page 24: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/24.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Resumo
1 Introducao
2 Arquitetura
3 pgBouncer
4 Caso de Sucesso
Euler Taveira de Oliveira PGDay SP
![Page 25: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/25.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Caso de Sucesso: last.fm
Carga
Euler Taveira de Oliveira PGDay SP
![Page 26: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/26.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Caso de Sucesso: last.fm
Memoria
Euler Taveira de Oliveira PGDay SP
![Page 27: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/27.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Caso de Sucesso: last.fm
CPU
Euler Taveira de Oliveira PGDay SP
![Page 28: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/28.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Referencias
http://pgfoundry.org/projects/pgbouncer/http://www.postgresql.org/
http://www.postgresql.org.br/http://www.lastfm.com.br/user/Russ/journal/2008/02/21/
zd postgres connection pools: pgpool vs. pgbouncer
Euler Taveira de Oliveira PGDay SP
![Page 29: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/29.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Vida Longa ao PostgreSQL
Euler Taveira de Oliveira PGDay SP
![Page 30: pgBouncer: um aglomerador de conexões para PostgreSQL](https://reader036.vdocuments.mx/reader036/viewer/2022082218/5598ef9e1a28ab6f118b47fd/html5/thumbnails/30.jpg)
IntroducaoArquiteturapgBouncer
Caso de Sucesso
Perguntas
?
Euler Taveira de [email protected]
http://www.timbira.com/
Euler Taveira de Oliveira PGDay SP