Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
I no Brasil + de 30.000 alunos satisfeitos Reconhecimento internacional Inovao com Hackerteen e Boteconet
www.4linux.com.br 2 / 34
www.4linux.com.br
3 / 34
Administrator
www.4linux.com.br
4 / 34
Oportunidades
www.4linux.com.br
5 / 34
Frias...
www.4linux.com.br
6 / 34
Frias...
www.4linux.com.br
7 / 34
Frias...
www.4linux.com.br
8 / 34
Frias...
www.4linux.com.br
9 / 34
Opa!
www.4linux.com.br
10 / 34
Desculpem!
Um momentinho pessoal, um cliente. Ele no t no melhor dia dele.
www.4linux.com.br
11 / 34
Novela de hoje
Captulos
Frias interrompidas Dia de descanso que nem comeou Madrugada no dormida Almoo do fim de semana cancelado Vale a pena ver de novo...
www.4linux.com.br
12 / 34
Comeando
ou
sudo apt-get install postgresql yum install postgresql
postgresql.conf padro
exceto listen_addresses
A: Nossa, esse sistema bom n? B: Pois ... A: Vamos expandir pro resto da empresa? B: Claro!
www.4linux.com.br
14 / 34
CEO: O sistema agilizou nossos processos Gerente TI: Custou muito pouco! Dois desenvolvedores, usamos software livre l no servidor, Apache com PHP, tudo grtis. Ainda deu pra aproveitar o servidor antigo. CEO: E o banco de dados? Gerente TI: PostgreSQL, tambm grtis. Tinha um DBA na equipe. CEO: Pstigri (sic)?
www.4linux.com.br 15 / 34
CEO: Pessoal, vamos abrir nosso sistema para as filiais. Aguenta? Gerente TI: O servidor t com 30% de CPU. D sim. S vai dobrar o nmero de usurios, tranquilo. CEO: Quanto de espao? Gerente TI: Ocupa uns 10 gigas. Com as filiais vai pra no mximo 40 gigas, cabe no HD fcil. CEO: Coloca no servidor na Internet logo! Quem cadastra os usurios novos?
www.4linux.com.br 16 / 34
CEO: T todo mundo reclamando desse sistema. Gerente TI: culpa do PostgreSQL. CEO: Eu sabia que Pstigri (sic) no aguenta. Gerente TI: Tem um tal de autovacuum rodando. J mandei parar. A turma l fez um reindex e o sistema voltou. Hoje noite vamos liberar mais usurios no banco.
www.4linux.com.br
17 / 34
Mitos
fazer REINDEX toda semana autovacuum desligado agendar VACUUM VACUUM FULL todo dia aumentar max_connections aumentar shared_buffers querer que consultas caibam no cache desligar enable_seqscan
www.4linux.com.br 18 / 34
Verdade
Os ndices tipo B-Tree so auto-balanceveis Entradas mortas so reaproveitadas pelo autovacuum REINDEX somente quando:
Verdade
autovacuum mantm espao em disco sob controle autovacuum mantm estatsticas atualizadas VACUUM manual usurios muito avanados VACUUM FULL quando
inchao exagerado de tabela especfica autovacuum mal configurado verificar com check_postgres
www.4linux.com.br
20 / 34
Verdade
mais autovacuum:
Diminuir autovacuum_vacuum_scale_factor Diminuit autovacuum_analyze_scale_factor faz muito uso do disco melhorou muito 8.3+ (palestra Bruce Momjian) aumentar autovacuum_vacuum_cost_delay
www.4linux.com.br
21 / 34
Verdade
Banco mais rpido mais requisies por segundo possveis Hiptese (extrema):
2.000 usurios = 2.000 requisies por segundo t requisio = 5s 10.000 conexes necessrias! t requisio = 0,01s 20 conexes necessrias!
www.4linux.com.br 22 / 34
Tese:
Verdade
Resposta (s) 2500 2000 1500 1000 500 0 0 10 20 30 40 50
Conexes
TPS 6 5 4 3 2 1 0 100
60
70
80
90
Testar e achar melhor relao tempo x conexes Ajustar max_connections (lembrar dos admins) Usar um aglomerador de conexes (pool) PgBouncer muito eficiente neste cenrio
www.4linux.com.br 23 / 34
Verdade
til em OLTP (mais escrita) no muito til em OLAP/DW (mais leitura) raramente um banco todo cabe na RAM Testar, testar, testar!
www.4linux.com.br
24 / 34
Verdade
www.4linux.com.br
25 / 34
Verdade
O planejador do PostgreSQL um dos mais avanados do mercado No precisamos de hints seqscan pode ser mais barato do que indexscan No desligar no conf, jamais!
www.4linux.com.br
26 / 34
Verdade
SET enable_seqscan=off; somente onde necessrio! random_page_cost (4) cpu_tuple_cost (0.01) cpu_index_tuple_cost (0.005) effective_cache_size (128)
www.4linux.com.br 27 / 34
Outras verdades
Revisar modelo de dados Remover ndices inteis Revisar consultas mal feitas Revisar recursividade na aplicao Verificar transaes aninhadas
Ttica de guerra
Verificar pg_stat_activity
Nmero de conexes reais Existncia de consulta(s) lenta(s) Execuo de autovacuum ANALYZE VERBOSE; mo matar consultas lentas Ajustar quente parmetros do autovacuum, work_mem Ajustar conexes ativas pela aplicao, criar um pool
Executar:
www.4linux.com.br
29 / 34
Criando a paz
Teste de carga Ajustes finos (principalmente desta palestra) Separar pg_xlog (escrita pesada, OLTP) Investimento, em ordem:
Discos rpidos (SAS, FC) RAID 10 Memria (leitura pesada, DW/OLAP) CPU (PL)
Monitore
No mnimo (PostgreSQL)
No mnimo (S.O.)
www.4linux.com.br
31 / 34
Concluso
possvel ter um banco de dados estvel, de baixa (s vezes nenhuma) manuteno Faa backups pg_dump no backup Fbio Telles TIRE FRIAS!
www.4linux.com.br
32 / 34
Veja mais
Curtiram o evento? Tava timo! Ainda tem Lighting Talks e encerramento!!! Crdito das imagens: FreeDigitalPhotos.net
www.4linux.com.br
33 / 34
Obrigado
Flavio Henrique Araque Gurgel flavio@4linux.com.br www.4linux.com.br www.hackerteen.com twitter.com/4LinuxBR Tel: 55-11-2125-4747
www.4linux.com.br 34 / 34