Sei sulla pagina 1di 34

Experincia em misso crtica de misso crtica Pioneira no ensino de Linux distncia Parceira de treinamento IBM Primeira com LPI

I no Brasil + de 30.000 alunos satisfeitos Reconhecimento internacional Inovao com Hackerteen e Boteconet
www.4linux.com.br 2 / 34

Meu ambiente cresceu e eu no planejei. E AGORA?

www.4linux.com.br

3 / 34

No final desta palestra


Sorteio de uma vaga no curso PostgreSQL Database

Administrator

www.4linux.com.br

4 / 34

Oportunidades

Cotidiano do DBA Escalabilidade Manuteno Mitos e verdades

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

prximo, prximo, prximo, finalizar

ou
sudo apt-get install postgresql yum install postgresql

postgresql.conf padro

exceto listen_addresses

alguns usurios algumas dezenas de tabelas outra dezena de ndices


www.4linux.com.br 13 / 34

Dois meses depois...


A: Nossa, esse sistema bom n? B: Pois ... A: Vamos expandir pro resto da empresa? B: Claro!

www.4linux.com.br

14 / 34

Quatro meses depois...


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

Seis meses depois...

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

Mais uma semana...

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:

inchao exagerado do ndice


Acontece muito quando autovacuum desligado Verificar com check_postgres http://bucardo.org/wiki/Check_postgres

erros sobre ndice no log (rarssimo)


www.4linux.com.br 19 / 34

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

mais atualizao de estatsticas

autovacuum no faz lock exclusivo!


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

shared_buffers (apresentao Greg Smith)


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

preferir aumentar work_mem


log_temp_files monitorar no log aumentar por usurio, banco de dados ou transao

Cuidar com o total de RAM disponvel!

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

Desligar seqscan numa sesso Testar e verificar Se comprovado, insira na aplicao:


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

Mais eficiente mexer:


Outras verdades

Revisar modelo de dados Remover ndices inteis Revisar consultas mal feitas Revisar recursividade na aplicao Verificar transaes aninhadas

possibilidade de <IDLE> in transaction SELECT FOR UPDATE;


www.4linux.com.br 28 / 34

Verificar locks explcitos

Ttica de guerra

T tudo repentinamente lento:

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)

SEPARE A APLICAO DO BANCO!


www.4linux.com.br 30 / 34

Monitore

No mnimo (PostgreSQL)

pg_stat_user_tables pg_stat_user_indexes pg_stat_database CPU, memria, E/S (sar) Espao em disco

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

Potrebbero piacerti anche