Tuning Banco de Dados

23
Banco de Dados Equipe: Carlos Jorge Ribeiro Felipe Caiuby James Moreira Professora: Celinia Cantalice ESTUDO DE CASOS EM FERRAMENTAS QUE UTILIZAM TUNING

Transcript of Tuning Banco de Dados

Page 1: Tuning Banco de Dados

Banco de Dados

Equipe: Carlos Jorge Ribeiro Felipe Caiuby James Moreira

Professora: Celinia Cantalice

ESTUDO DE CASOS EM FERRAMENTAS QUE UTILIZAM TUNING

Page 2: Tuning Banco de Dados

Tuning

• Tuning diz respeito ao ajuste do SGBD para melhor utilização dos recursos deste, provendo um uso eficaz e eficiente do SGBD.

• Tuning requer conhecimento de:– Desenvolvimento de Aplicações– SGBD– Sistema operacional– HardwarePortanto, é necessário monitorar e revisar o projeto físico de banco de dados constantemente. Os objetivos da sintonia (ou tuning) são os seguintes: I. fazer com que as aplicações sejam executadas mais rapidamente, II. diminuir o tempo de resposta de consultas/transações e III. melhorar o desempenho geral das transações.

Page 3: Tuning Banco de Dados

Tuning

• Em Tuning, comumente serão utilizadas informações de estatísticas de uso de HW:– Utilização do processador– Atividade de I/O– Paginação– Memória utilizada– ...

Page 4: Tuning Banco de Dados

TuningCritérios Adotados De uma forma simplificada, existem alguns critérios principais que podem ser adotados para identificar as consultas que devem ser modificadas, são eles: • monitorar as sessões ativas que estão sendo executadas no banco de dados;• separar as consultas que estão com execuções demoradas, • dividi-las em grupos, como: prioridade, freqüência de execução e fraco desempenho; • implementar os ajustes reescrevendo as consultas que estão com fraco desempenho. Cada banco de dados fornece suas ferramentas específicas para capturar as consultas citadas nos itens acima, porém a maneira mais eficiente e explícita é o próprio uso feito pelo usuário final.

Page 5: Tuning Banco de Dados

Tuning

Particionar Gargalos– O sistema fica lento geralmente porquê há

algum(uns) componentes limitando a performance como um todo. Agir nesta parte é o correto.

– Particionar permite reduzir a carga de um certo componente do sistema.

– Lição: quando encontrar um gargalo, primeiro tente agilizar o componente que causa o gargalo, se não conseguir sucesso particione.

Page 6: Tuning Banco de Dados

Tuning

Custos de inicialização são altos, custos de execução são baixos

– Uma operação de leitura é cara para iniciar, mas menos cara enquanto se lê. Portanto, tente fazer leituras mais longas, colocando tabelas que sofrem scan constantemente serem armazenadas de forma contígua

– O mesmo raciocínio vale para abertura de conexões com o SGBD, parsing de consultas muito usadas, envio de mensagens na rede (tamanho das mensagens)

Page 7: Tuning Banco de Dados

Tuning

Coloque no servidor apenas o que diz respeito ao servidor

– Saber fazer o load-balancing, permitindo não sobrecarregar o servidor de banco de dados com tarefas que poderiam estar em outras camadas.

Page 8: Tuning Banco de Dados

Tuning

Esteja preparado para trade-offs– Adição de índices– Verificar as vantagens/desvantagens entre a compra

de mais recursos versus a agilidade que se irá obter destas aquisições.

Page 9: Tuning Banco de Dados

Tuning

Cinco fatores influem na performance:

– Workload (carga)– Throughput (Vazão)– Recursos– Otimização– Contenção

Page 10: Tuning Banco de Dados

Tuning• Workload

– Define a demanda do BD. Combina transações online, batch jobs, consultas ad hoc, data warehousing, consultas analíticas, e comandos dirigidos ao SGBD

– Pode variar drasticamente de dia para dia, hora para hora, minuto para minuto, segundo para segundo.

– Algumas vezes é previsível (Rodar a folha de pagamento no final do mês), mas muitas vezes é imprevisível

– Workload tem grande impacto na performance do SGBD

Page 11: Tuning Banco de Dados

Tuning

• Throughput– Define a capacidade do hardware/software para

processar os dados– É composto de velocidade de I/O, velocidade de

CPU, capacidades de paralelismo, e eficiência do SO.

– Kernel do DB, espaço em disco, controladores de cache, e microcode são exemplos dos recursos a serem avaliados para computar throughput

Page 12: Tuning Banco de Dados

Tuning• Otimização

– Refere-se à análise das solicitações ao BD com custo de query que geram diferentes planos de acesso aos dados.

• Contenção– Quando a demanda (workload) para uma recurso

particular é alta então contenção acontece.– É a condição na qual dois ou mais componentes de

workload estão tentando usar um recurso em modo conflitante.

– À medida que a contenção aumenta, o throughput diminui.

Page 13: Tuning Banco de Dados

TuningPadrões e Otimizações

Serão apresentados nesta seção os testes que serviram como base para medir o desempenho do SGBD PostgreSQL em relação ao SGBD MySQL, bem como um comparativo de seus desempenhos em diferentes sistemas operacionais e sistemas de arquivos. A partir destes comparativos foram desenvolvidas configurações de otimização para o SGBD PostgreSQL e realizadas novas medições de desempenho com o objetivo de demonstrar que o processo de otimização pode gerar algumas melhorias significativas quando realizado corretamente.

Page 14: Tuning Banco de Dados

Tuning

Tabela 1: Sistemas operacionais utilizados

Sistema Operacional Sistema de Arquivos

Windows XP Home SP2 NFTS

Linux Kernel 2.6.18 ReiserFS

Linux Kernel 2.6.18 Ext3

Partindo do objetivo de gerar testes de desempenho confiáveis e certificados, foi escolhido o método TPC-C, a partir deste método foi desenvolvido um conjunto de testes para serem executados nos diferentes sistemas operacionais e sistemas de arquivos abordados no projeto. Primeiramente foram configurados três sistemas operacionais distintos e estes sistemas estão especificados na Tabela 1.

Page 15: Tuning Banco de Dados

TuningPadrões e OtimizaçõesTPC-C (Transaction Processing Perfomance council) simula um ambiente de computação completo, onde uma população de usuários executa as transações contra um banco de dados. Nele são avaliados quesitos como:

• A execução simultânea de vários tipos de transações que abrangem uma amplitude de complexidade;

• Várias sessões de terminais on-line;• Integridade da transação (propriedades ACID);• Distribuição não uniforme de acesso a dados por meio

de chaves primárias e secundárias.

Page 16: Tuning Banco de Dados

TuningPadrões e Otimizações

Como conjunto de testes para utilização do método TPC-C no software BenchmarkSQL adotou-se as três configurações para transações demonstradas na Tabela 2.

Tabela 2: Conjunto de testes para o método TPC-C e tamanho aproximado da base de dados resultante

Nº de WareHouses Nº de Terminais Tamanho Decorrente

1 10 300MB

10 10 1GB

10 100 1GB

Page 17: Tuning Banco de Dados

TuningPadrões e Otimizações

Resultados Obtidos Seguindo o conjunto de testes especificado, foi utilizado o software BenchmarkSQL nos sistemas citados anteriormente, utilizando a configuração padrão dos SGBDs PostgreSQL e MySQL. Os resultados destes testes serão demonstrados a seguir.

Tabela 3: Resultados obtidos com as configurações padrão para execução de 1 warehouses e 10 terminais

WeareHouse 1 - Terminais 10Sistema Operacional Configuração Nº Transação Média TPm Duração (min)

Windows - NTFS PostgreSQL 13078 577,4698178 10MySQL 19546 887,6759983 10

Linux - ReiserFS PostgreSQL 21961 993,6732044 10MySQL 17846 796,1059276 10

Linux - Ext3 PostgreSQL 11744 536,5409173 10MySQL 14957 673,0266379 10

Page 18: Tuning Banco de Dados

TuningPadrões e Otimizações

Pode-se constatar que o SGBD MySQL obteve um desempenho superior ao SGBD PostgreSQL, em duas situações. Estas foram utilizando o sistema operacional Windows com NTFS, e no sistema operacional Linux utilizando Ext3, para o teste de 10 terminais e 1 warehouse que utiliza uma base de dados de aproximadamente 300MB de espaço em disco. No sistema operacional Linux utilizando ReiserFS foi constatado que o SGBD PostgreSQL apresenta um bom desempenho em sua configuração padrão em comparação com o SGBD MySQL, para este teste que apresenta um número não muito grande de conexões concorrentes.

Page 19: Tuning Banco de Dados

TuningPadrões e Otimizações

Tabela 4: Resultados obtidos com as configurações padrão para execução de 10 warehouses e 10 terminais

WeareHouse 10 - Terminais 10Sistema Operacional Configuração Nº Transação Média TPm Duração (min)

Windows - NTFS PostgreSQL 7413 330,4362277 10MySQL 13416 593,6841333 10

Linux - ReiserFS PostgreSQL 10649 476,1026567 10MySQL 13187 595,8599724 10

Linux - Ext3 PostgreSQL 6547 294,8913817 10MySQL 11154 361,796517 10

Page 20: Tuning Banco de Dados

TuningPadrões e Otimizações

Constatou-se que conforme são aumentados os números de conexões concorrentes o SGBD PostgreSQL apresenta uma queda de desempenho inclusive no sistema operacional Linux utilizando ReiserFS, isto devesse ao fato de que a configuração padrão do SGBD PostgreSQL não é otimizada para ambientes OLTP (OnLine Transaction Processing), que possuem grande número de conexões concorrentes e consultas simples. Desta forma constatou-se a necessidade de otimizar o SGBD PostgreSQL a fim de melhorar o seu desempenho neste tipo de ambiente.

Page 21: Tuning Banco de Dados

Tuning• Conclusao

– Performance de BD pode ser definida como a otimização de uso de recursos para aumentar a throughput e minimizar a contenção, possibilitando o maior workload possível ser processado.

– Um monitoramento efetivo de performance e estratégia de tuning requer não apenas expertise no SGBD mas conhecimento que vai além da administração de BD.

Page 22: Tuning Banco de Dados

Tuning• Referëncias

http://repositorio.furg.br/bitstream/handle/1/1692/TUNING.pdf?sequence=1

Page 23: Tuning Banco de Dados

Banco de Dados

Equipe: Carlos Jorge Ribeiro Felipe Caiuby James Moreira

Professora: Celinia Cantalice

ESTUDO DE CASOS EM FERRAMENTAS QUE UTILIZAM TUNING

Obrigado!