1. O documento introduz o pgBouncer, um aglomerador de conexões para o PostgreSQL, e discute sua arquitetura e configuração.
2. Ele explica os modos de operação do pgBouncer e como configurar bancos de dados, usuários e parâmetros.
3. Um caso de sucesso no last.fm é apresentado mostrando os benefícios do pgBouncer em termos de desempenho e uso de recursos.
pgBouncer: Case Study on Connection Pooling for PostgreSQL
1. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
pgBouncer: um aglomerador de conex˜es para
o
PostgreSQL
Euler Taveira de Oliveira
PostgreSQL Brasil
24 de abril de 2009
Euler Taveira de Oliveira PGDay SP
2. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Resumo
1 Introdu¸˜o
ca
2 Arquitetura
3 pgBouncer
4 Caso de Sucesso
Euler Taveira de Oliveira PGDay SP
3. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Conceito
Aglomerador de Conex˜es (connection pooler) ´ um software que
o e
mant´m uma cache de conex˜es para serem utilizadas em
e o
requisi¸˜es futuras.
co
Euler Taveira de Oliveira PGDay SP
4. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Objetivo
Diminuir impacto de performance causado pela abertura de novas
conex˜es
o
Euler Taveira de Oliveira PGDay SP
5. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Cen´rio
a
consultas de curto prazo
muitos usu´rios
a
Euler Taveira de Oliveira PGDay SP
6. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Cen´rio
a
consultas de curto prazo
muitos usu´rios
a
Aplica¸˜es Web
co
Euler Taveira de Oliveira PGDay SP
7. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Resumo
1 Introdu¸˜o
ca
2 Arquitetura
3 pgBouncer
4 Caso de Sucesso
Euler Taveira de Oliveira PGDay SP
8. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
PostgreSQL
Euler Taveira de Oliveira PGDay SP
9. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Conex˜o
a
Euler Taveira de Oliveira PGDay SP
10. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Arquitetura do Sistema
Euler Taveira de Oliveira PGDay SP
11. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Resumo
1 Introdu¸˜o
ca
2 Arquitetura
3 pgBouncer
4 Caso de Sucesso
Euler Taveira de Oliveira PGDay SP
12. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Modos de Opera¸˜o
ca
aglomera¸˜o por sess˜o (session pooling) – gentil
ca a
aglomera¸˜o por transa¸˜o (transaction pooling)
ca ca
aglomera¸˜o por comando (command pooling) – agressivo
ca
Euler Taveira de Oliveira PGDay SP
13. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Configura¸˜o
ca
arquivo de autentica¸˜o
ca
arquivo de configura¸˜o (formato ini)
ca
Euler Taveira de Oliveira PGDay SP
14. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Arquivo de Autentica¸˜o
ca
idˆntico ao $PGDATA/global/pg auth
e
pode-se utilizar o mesmo arquivo se o pgBouncer estiver na
mesma m´quina do PostgreSQL
a
Euler Taveira de Oliveira PGDay SP
15. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Arquivo de Configura¸˜o
ca
[databases]
empresa = host=127.0.0.1 port=5432 dbname=4linux
[pgbouncer]
listen_addr = 127.0.0.1
listen_port = 6432
auth_type = md5
auth_file = /etc/pgbouncer/users
logfile = /var/log/pgbouncer/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
admin_users = pedro
stats_users = joao, maria
pool_mode = transaction
max_client_conn = 500
default_pool_size = 100
Euler Taveira de Oliveira PGDay SP
16. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Arquivo de Configura¸˜o - databases
ca
Se¸˜o databases
ca
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
17. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Arquivo de Configura¸˜o - pgbouncer
ca
Op¸˜es Gerais
co
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
18. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Arquivo de Configura¸˜o - pgbouncer
ca
Op¸˜es de Log
co
syslog
syslog facility
log connections
log disconnections
log pooler errors
Euler Taveira de Oliveira PGDay SP
19. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Arquivo de Configura¸˜o - pgbouncer
ca
Verifica¸˜es e Tempo de Espera
co
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
20. Introdu¸˜o
ca
Arquitetura
pgBouncer
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
21. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Monitoramento
pgbouncer=# show stats;
-[ RECORD 1 ]----+-----------
database | bench
total_requests | 8014
total_received | 3121707
total_sent | 1527374
total_query_time | 1361574602
avg_req | 0
avg_recv | 0
avg_sent | 0
avg_query | 0
Euler Taveira de Oliveira PGDay SP
22. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Controle de Opera¸oes
c˜
PAUSE: desconecta todos clientes mas espera consultas
terminarem;
SUSPEND: para de atender requisi¸˜es;
co
RESUME: voltar a trabalhar ap´s comandos PAUSE e
o
SUSPEND;
SHUTDOWN: termina o processo do pgBouncer;
RELOAD: carrega novamente o arquivo de configura¸˜o.
ca
Euler Taveira de Oliveira PGDay SP
23. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Controle de Opera¸oes
c˜
pgbouncer=# pause;
PAUSE
pgbouncer=# resume;
RESUME
pgbouncer=# reload;
RELOAD
Euler Taveira de Oliveira PGDay SP
24. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Resumo
1 Introdu¸˜o
ca
2 Arquitetura
3 pgBouncer
4 Caso de Sucesso
Euler Taveira de Oliveira PGDay SP
25. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Caso de Sucesso: last.fm
Carga
Euler Taveira de Oliveira PGDay SP
26. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Caso de Sucesso: last.fm
Mem´ria
o
Euler Taveira de Oliveira PGDay SP
27. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Caso de Sucesso: last.fm
CPU
Euler Taveira de Oliveira PGDay SP
28. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Referˆncias
e
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
29. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Vida Longa ao PostgreSQL
Euler Taveira de Oliveira PGDay SP
30. Introdu¸˜o
ca
Arquitetura
pgBouncer
Caso de Sucesso
Perguntas
?
Euler Taveira de Oliveira
euler@timbira.com
http://www.timbira.com/
Euler Taveira de Oliveira PGDay SP