Escolar Documentos
Profissional Documentos
Cultura Documentos
Dezembro de 2009
Curso de Engenharia de Computao
Dezembro de 2009
iii
.Agradecimentos
Agradeo a meus pais e irm por todo carinho e dedicao em todos os momentos da minha
vida.
Agradeo a minha namorada por sempre demonstrar seu amor, apoio e dedicao.
Agradeo ao Prof. Marcio Henrique Zuchini, pelas crticas, ensinamentos e todo o apoio.
3
Sumrio
Resumo ................................................................................................................................... 08
Abstract .................................................................................................................................. 09
1. INTRODUO ................................................................................................................. 10
1.1 Contextualizao .......................................................................................................................................... 10
3.4.2 Transaes.................................................................................................................................................. 22
4. IMPLEMENTAO ........................................................................................................ 25
4
5. CONCLUSO.................................................................................................................... 38
Lista de Siglas
Lista de Figuras
FIGURA 5: Configurao dos recursos do servidor fsico e das mquinas virtuais. ............................................ 26
FIGURA 7: Comparao do desempenho da otimizao do Servidor 3 em relao aos Servidores 1 e 2.. ......... 30
FIGURA 11: Comparao do desempenho da otimizao do Servidor 3 em relao aos Servidores 1 e 2.. ....... 34
FIGURA 12: Quantidade de transaes realizadas por Servidor na Simulao 2.. .............................................. 35
FIGURA 16: Comparao da quantidade de transaes realizadas nos servidores na Simulao 1 e 2............... 37
7
Lista de Tabelas
Resumo
Abstract
The demand for database systems continually increases and with that, the volume and
complexity of data these systems must manage. This work shows the importance of a database
management system tuning which works on online processing transactions. An analysis of
PostgreSQL database tuning performance has been made focusing on parameter
configuration. For the simulation and comparison of performance tests, the tool
BenchmarlSQL was used, based on TPC-C methodology.
1 INTRODUO
1.1 Contextualizao
Quando uma empresa no possui uma equipe tcnica com um bom grau de
treinamento e conhecimento do SGBD que utiliza, certamente no possuir um sistema
totalmente configurado e adaptado para as suas aplicaes, o que acaba gerando uma baixa
performance. Muitas vezes por falta desse conhecimento especfico pode ocorrer um erro de
planejamento, pois se investe em aquisio de novos equipamentos mais potentes, para suprir
uma necessidade que poderia ser melhorada apenas com uma melhor administrao dos
recursos de software de seu SGBD.
1.2 Objetivo
Este trabalho tem por objetivo mostrar como um SGBD que ir trabalhar com
aplicaes OLTP (On Line Transaction Processing) pode se comportar ajustando-se
parmetros de configuraes especificas e tambm de mudanas dos recursos de hardware.
Intenciona-se mostrar que alguns ajustes podem trazer grandes ganhos de desempenho e que
nem sempre o melhor caminho para melhoria de desempenho o investimento em novos
recursos de hardware.
11
2 REVISO BIBLIOGRAFICA
Aps um banco de dados ter sido desenvolvido e estar em operao, o uso real das
aplicaes, das transaes, das consultas e das vises revela fatores e reas de problemas que
podem no ter sido considerados durante o projeto de desenvolvimento.
As informaes de entrada para o projeto fsico podem ser revisadas por meio da coleta
de estatsticas reais sobre os padres de uso. A utilizao dos recursos, bem como o
14
processamento interno do SGBD pode ser monitorado para revelar gargalos, tais como a
disputa pelos mesmos dados ou dispositivos. Os volumes de atividades e os tamanhos dos
dados podem ser melhor estimados. Portanto, necessrio monitorar e revisar o projeto fsico
do banco de dados constantemente, mostrando quais ajustes devem ser efetuados no sistema
para melhor atender s necessidades dos usurios finais, propiciando a execuo mais rpida
do mesmo volume de transaes sobre o mesmo hardware e software.
No projeto de SGBD comum descobrir que, quando uma aplicao montada, ela
fica mais lenta do que os desenvolvedores previam, ou trata menos transaes por segundo.
De acordo com [SILBERSCHATZ 2006]: Uma aplicao que leva um tempo excessivo para
realizar as aes solicitadas pode causar, insatisfao do usurio e tambm se tornar
inutilizvel.
Mas para que seja possvel realizar o ajuste de um sistema, primeiro preciso tentar
descobrir quais so os gargalos do sistema e depois tentar elimin-los da maneira mais eficaz
possvel.
componente que no seja um gargalo faz pouca diferena para melhorar a velocidade do
sistema. No exemplo a melhoria de desempenho no restante do cdigo no pode resultar em
mais que 20% de melhoria do sistema, enquanto que a melhoria da velocidade do loop de
gargalo, poderia resultar em um ganho significativo de desempenho.
Pode-se concluir que em sistemas que contenham gargalos que no possam ser
solucionados por algum motivo tcnico ou financeiro, os componentes que no fazem parte
do gargalo so subtilizados e talvez possam ser substitudos por componentes mais baratos
com menor desempenho, gerando uma reduo de custos.
Os trs nveis de ajuste interagem entre si. Devemos considerar tal combinao
quando ajustamos o sistema. Por exemplo, ajustar um nvel mais alto pode resultar em uma
alterao no gargalo de hardware, como do disco rgido para CPU (Central Processing Unit).
3 PROJETO DESENVOLVIDO
Este trabalho prope uma anlise da otimizao do banco de dados PostgreSQL (seo
3.2), em diferentes ambientes de testes, atravs da ferramenta BenchmarkSQL (seo 3.4) que
se baseia na metodologia TPC-C (Transaction Processing Performance Council) (seo 3.3).
Neste trabalho foi utilizado o software VMware Workstation 6.5, que permite trabalhar
com um ou mais sistemas operacionais simultaneamente num ambiente isolado, criando
mquinas virtuais completas dentro de um computador fsico que esta utilizando um sistema
operacional totalmente distinto [VMware 2008].
3.2 PostgreSQL
- comandos complexos;
- chaves estrangeiras;
- gatilhos;
- vises;
- integridade transacional;
Devido sua licena aberta, o PostgreSQL pode ser utilizado, modificado e distribudo
por qualquer pessoa para qualquer finalidade, seja privada, comercial ou acadmica, livre de
encargos. Para este trabalho foi utilizado a verso 8.4.1.
20
3.4 BenchmarkSQL
Por ser uma ferramenta baseada na metodologia TPC-C, que o objetivo a avaliao
do desempenho de determinado sistema de banco de dados, atravs da execuo de diversas
transaes do tipo OLTP, mistura transaes de apenas leitura com transaes que fazem
intensivas atualizaes no banco de dados.
21
3.4.1 Metodologia
3.4.2 Transaes
O BenchmarkSQL define cinco tipos de transaes que devem ser submetidas contra o
SGBD durante a carga de teste: New-Order, Payment, Order-Status, Delivery e Stock-Level.
- Criao das Tabelas: Nesta etapa foram criadas as tabelas dentro do SGBD,
executando um arquivo que faz parte do software BenchmarkSQL, chamado
runSQL.bat para o sistema operacional Windows ou runSQL.sh para o sistema
Unix, mais o comando sqlTableCreates. Comando:
- Carga das Tabelas: Para a carga das tabelas no SGBD foi executado o arquivo
loadData.bat para o sistema operacional Windows ou loadData.sh para o sistema
Unix. Que gerou uma base de dados aleatrios nas tabelas do mtodo TPC-C,
aproximadamente 600.000 registros foram inseridos. Comando:
loadData PostgreSQL.properties
Por padro o BenchmarkSQL esta preparado para trabalhar apenas com uma
Warehouse, sendo possvel aumentar o nmero de Warehouses do ambiente,
atravs do parmetro numWarehoues=N, no final do comando loadData.
Comando:
runBenchmark PostgreSQL.properties
25
4 IMPLEMENTAO
Este captulo tem por objetivo apresentar os detalhes da implementao dos dois
ambientes de simulao que foram utilizados e uma anlise dos resultados de desempenho do
SGBD dentro da cada ambiente.
4.2 Simulao 1
Aps a etapa de criao dos trs servidores virtuais, foi criada a primeira simulao de
desempenho, que consistiu em criar um ambiente que simulou um nmero razovel de
transaes OLTP nos trs servidores virtuais por um perodo de 10 minutos, atravs do
BenchmarkSQL. Para esta etapa foi utilizado a relao de 1 warehouse para 10 terminais.
O primeiro passo foi realizar a carga da base de dados no PostgreSQL, essa carga
consiste na criao de um banco de dados chamado TEST, que contm nove tabelas com
aproximadamente 600.000 tuplas e dentro dessas nove tabelas foram geradas vrias
transaes do tipo: New-Order, Payment, Order-Status, Delivery e Stock-Leve. Importante
ressaltar que para garantir um melhor resultado das avaliaes, sempre que uma simulao
27
iniciada a base de dados antiga excluda e um novo banco criado novamente com mesmas
caractersticas.
Os resultados das simulaes detalhadas por cada servidor e seus terminais, encontra-
se no Apndice 1.
28
4.3 Simulao 2
O primeiro passo foi realizar a carga da base de dados no PostgreSQL, essa carga
consiste na criao de um banco de dados chamado TEST2 que contm nove tabelas com
aproximadamente 3.000.000 tuplas e dentro dessas nove tabelas foram geradas vrias
transaes do tipo: New-Order, Payment, Order-Status, Delivery e Stock-Leve. Importante
ressaltar que para garantir um melhor resultado das avaliaes, sempre que uma simulao
iniciada o banco de dados antigo excludo e um novo banco criado novamente com
mesmas caractersticas.
Observa-se que na Figura 10, que o nmero de transaes realizadas pelos Servidores
1 e 2 foi aproximadamente 2.000 vezes maior que nmero de transaes realizadas na
Simulao 1 .
33
Transaes
300.000
272.547
253.222
250.000
205.916
s 200.000
e
sa
n
ar 150.000
T
e
d
t
Q 100.000
50.000
12.152 9.107 14.082
-
Servidor 1 Servidor 2 Servidor 3
Simulao 1 Simulao 2
5 CONCLUSO
Percebe-se que para um ambiente OLTP existe um gargalo nas configuraes padres
do PostgreSQL e que para a otimizao dos parmetros de configurao foi levado em
considerao alguns fatores especficos que envolveram: o tamanho de memria disponvel no
servidor, quantidade de conexes que podem ser realizadas no banco de dados
simultaneamente, tamanho da memria disponvel para operaes de manuteno e
configurao dos parmetros de log. Concluindo-se que as otimizaes foram realizadas de
forma balanceada, pois o gargalo no estava em um parmetro isolado.
Com relao ao SGBD PostgreSQL pode-se afirmar que sua configurao padro
comporta-se de forma eficiente em grandes bases de dados e quando executa funes
complexas, s que tal configurao no exerce o mesmo desempenho em um ambiente OLTP,
assim, sendo de extrema importncia sua otimizao para este tipo de ambiente. Tambm foi
comprovado que o servidor que estava com banco de dados PostgreSQL otimizado, teve uma
performance muito superior aos outros servidores, tanto no ambiente de Simulao 1 que
trabalhou com uma quantidade menor transaes e tanto para a Simulao 2 que trabalhou
com uma quantidade maior de transaes em um perodo maior de tempo.
Conclui-se que a realizao de uma otimizao correta para a o tipo de aplicao que o
SGBD ir trabalhar pode resultar em ganho significativo de desempenho, sendo de extrema
importncia possuir um bom conhecimento tcnico do SGBD que ser utilizado. Tambm se
conclui que liberar demasiadamente recursos computacionais do sistema para o SGBD nem
sempre resulta em aumento de desempenho, muito pelo contrrio, s vezes provoca perda de
desempenho. Podendo afirmar que a otimizao de um SGBD em uma corporao pode
39
resultar em uma reduo substancial de custos, pois pode-se ter uma melhoria de performance
do sistema e um ganho de produtividade dos usurios finais, sem a necessidade de
investimento em novos recursos de hardware e software.
5.1 Contribuies
Atravs deste trabalho foi possvel comprovar que um SGBD mal configurado gera um
grande desperdcio de recursos, mostrando a importncia e necessidade dos benficos da
otimizao no PostgreSQL dentro do ambiente OLTP, gerando um ganho de performance
significativo sobre os mesmo recursos de hardware.
Assim, aps a uma anlise e concluso, podemos citar abaixo as contribuies que este
trabalho oferece para o leitor que deseja conhecer mais sobre a otimizao de banco de dados:
Para este trabalho foi utilizada a ferramenta BenchmarkSQL que utiliza o TPC-C que
uma das metodologias de anlise de peformance para SGBD da instituio TPC. A proposta
seria o desenvolvimento de um trabalho sobre os outros benchamrks da TPC, como por
exemplo o TPC-H (Transaction Processing Performance Ad-hoc) que simula um sistema de
suporte a deciso para grandes volumes de dados em tempo real.
Referncias Bibliogrficas
[DATE 2003 ] DATE, C. J. Introduo a Sistemas de Banco de Dados.5 ed. Rio de Janeiro: Campu, 2003.
Bibliogrfica Consultada
RODRIGUES, Marcelo Nunes. Analise de Desempenho de Sistemas OLTP Utilizando Benchmark TPC-C.
Centro de Informtica Universidade Federal de Pernambuco: Pernambuco 2006.
LEMKE, Vilson Zarnott. Anlise Comparativa dos Parmetros Envolvidos no Ajuste de Desempe dos Bancos de
Dados Oracle 91 e Interbase 6.5. Universidade Luterana do Brasil: Gravatai, 2002.
43
As tabelas abaixo, mostram o resultado das simulaes detalhadas por cada servidor e
seus terminais, para a Simulao 1:
44
45
As tabelas abaixo, mostram o resultado das simulaes detalhadas por cada servidor e
seus terminais, para a Simulao 2:
46
47