Análise de Desempenho de um SGBD para Aglomerado de Computadores - PDF
Download "Análise de Desempenho de um SGBD para Aglomerado de Computadores"
Iasmin Carmona Diegues
1 Análise de Desempenho de um SGBD para Aglomerado de Computadores Diego Luís Kreutz, Gabriela Jacques da Silva, Hélio Antônio Miranda da Silva, João Carlos Damasceno Lima Curso de Ciência da Computação - UFSM Departamento de Eletrônica e Computação - UFSM {kreutz, gabijs, helio, Abstract With the great demand for more efficient Database Management Systems, tools that use the computational power offered by clusters arised. This article presents a performance analysis of the IBM DB2 tool with different configurations of the database, trying to verify if it provides a good solution. Resumo Com a grande demanda por Sistemas de Gerenciamento de Banco de Dados mais eficientes, surgiram ferramentas que utilizam do potencial computacional proporcionado por aglomerado de computadores. Este trabalho consiste em uma análise de desempenho da ferramenta IBM DB2 em diferentes configurações da base de dados, procurando verificar se esta ferramenta proporciona uma boa solução. 1 Introdução A quantidade de dados a serem manipulados pelos sistemas de computação não parou de crescer desde a invenção dos primeiros computadores. Devido a esta crescente demanda de sistemas para o gerenciamento destes dados é que surgiram os primeiros Sistemas de Gerenciamento de Banco de Dados (SGBD). Esta demanda por SGBDs ainda está em plena fase de crescimento. Tanto no meio científico como comercial são necessários cada vez mais SGBDs que sejam eficientes para quantidades de dados cada vez maiores [MOR 2001]. A necessidade de armazenamento, das mais diversas informações, e o rápido acesso a essas faz com que se tenha mais interesse na evolução deste tipo de sistemas. Em resposta a crescente demanda por alto desempenho e bases de dados cada vez maiores surgiram os primeiros SGBDs para máquinas paralelas e máquinas multiprocessadas. Estes sistemas têm por objetivo diminuir o tempo de acesso a informação bem como distribuir a informação de forma a aumentar a capacidade de armazenamento de forma simples e econômica [DEW 1992]. 1
2 O principal objetivo deste trabalho foi realizar uma análise de desempenho de um SGBD para arquiteturas paralelas através da modelagem de um sistema simples que gerencie uma grande quantidade de informações de uma instituição de ensino. O artigo está estruturado da seguinte forma: na seção 2 aborda justificativas para a utilização de banco de dados paralelos. As seções 3 e 4 descrevem as ferramentas utilizadas e explica a geração das bases de dados experimentais. A seção 5 mostra uma análise dos resultados de desempenho obtidos. 2 Sistemas de Banco de Dados Paralelos Uma grande evolução nos sistemas de banco de dados, que tende a melhorar os tempos de acesso à informação, é a criação de sistemas que saibam usar eficientemente o hardware disponível. Este hardware pode ser constituído de várias unidades processadoras, organizadas das mais diferentes maneiras. Uma arquitetura bastante encontrada é a multiprocessada, também chamada SMP (Symetric Multiprocessor). Essas máquinas são constituídas por um determinado número de processadores, trabalhando sobre o mesmo barramento e compartilhando memória. Máquinas com essas características são extremamente caras e pouco escaláveis. Outra arquitetura, que vem se tornando uma tendência, é a que faz uso de aglomerados de computadores comuns, também chamado de clusters. A maioria das ferramentas exploram somente o potencial do primeiro tipo de arquitetura. Porém, as mais modernas conseguem explorar o potencial de arquiteturas híbridas, que constituem-se de um aglomerado de máquinas multiprocessadas. Tais ferramentas se revelam como as mais eficientes do mercado quando o alvo principal é o acesso as informações contidas no banco de dados. Quanto a insersão de dados, estas ferramentas se mostram menos eficientes que ferramentas normais devido ao trabalho extra de gerenciamento das transações gerado pela paralelização da base de dados. 3 O Sistema Escolhido Para a realização do experimento foi utilizado a ferramenta IBM DB2 Enterprise Edition Extended em sua versão 7.2 [IBM 2002]. Esta ferramenta foi desenvolvida para possibilitar o uso de máquinas multiprocessadas e multicomputadores. Neste caso, foi utilizado uma máquina paralela composta de máquinas multiprocessadas. Esta máquina paralela é o aglomerado de computadores disponível no Laboratório de Sistemas de Computação da UFSM. Este aglomerado dispõem de 12 nós Pentium III de 1GHz biprocessados com 768MB de mémoria RAM e disco rígido de 20GB. Os nós se comunicam através de uma rede Gigabit e uma rede Ethernet 100Mbits. Cabe ressaltar que todas as máquinas possuem as mesmas configurações tanto de hardware como de software para evitar que haja distorções na análise dos resultados obtidos. A figura 1 apresenta uma ilustração da arquitetura do SGBD utilizado. 2
3 Figura 1: Ilustração da arquitetura do SGBD utilizado. 4 Geração da Base de Dados No objetivo de obter resultados mais consistentes, as bases de dados precisavam de grandes quantidades de registros. Para isso, scripts shell foram criados para gerar registros de forma aleatória. Foram criadas bases de diferentes tamanhos. Todas foram testadas em três diferentes configurações da ferramenta IBM DB2. Em uma das configurações instalou-se o banco de dados em somente uma das máquinas do aglomerado. Em outra utilizou-se em duas máquinas. Na terceira, usou-se quatro máquinas. 5 Comparação de Desempenho O objetivo central deste trabalho foi baseado na análise de desempenho das bases de dados centralizada e distribuídas. Para fins de comparação de desempenho, foram utilizadas diversas configurações de base de dados. Para cada um destes modelos foram criadas três tipos de base de dados de diferentes tamanhos como pode ser visualizado na tabela que segue: Tamanho da base Número de registros Base Base Base As próximas seções apresentam os resultados obtidos durante a inserção e consulta de dados. 5.1 Inserção na Base de Dados Quanto a inserção de novos registros na base de dados, notou-se que a inclusão de tuplas nas bases distribuídas levou um tempo consideravelmente maior ao da base centralizada. Tal demora se deve ao fato de haver um maior controle para garantir que as transações respeitem as suas propriedades básicas (atomicidade, consistência, isolamento 3
4 e durabilidade) além do processamento de distribuíção dos dados [DEW 1992, IKE 1996]. O SGBD utilizado realiza uma distribuição horizontal dos dados [DEW 1992], ou seja, na medida que vão sendo inseridos novos registros estes vão sendo distribuidos entre as bases de dados das máquinas que compõem o sistema. 5.2 Consultas na Base de Dados No objetivo de verificar o desempenho relativo a consultas na base de dados, foram criadas cinco consultas que exploram diferentes recursos das máquinas envolvidas. As consultas executavam diferentes operações, como contagem e média, sobre os registros da base de dados. A seguir serão descritas as consultas realizadas e apresentados alguns dos resultados obtidos. Os gráficos da figura 2, apresentam a diferença de desempenho nas consultas entre as bases de dados centralizada e distribuidas. O gráfico da esquerda representa uma consulta que busca os cursos que contém o maior números de alunos (consulta 1). O gráfico da direita mostra uma consulta que retorna a média de idade dos alunos em cada turma (consulta 5). Consulta 1 Consulta Centralizado 2 Particoes 4 Particoes 120 Centralizado 2 Particoes 4 Particoes Tempo Tempo Tamanho da base Tamanho da base Figura 2: Comparação de desempenho entre as consultas É possível visualizar no gráfico da consulta 1, em uma base pequena as três configurações apresentam resultados próximos, ou seja, gastam um pequeno tempo para realizar a consulta. Porém, a medida que o tamanho da base vai crescendo as bases particionadas apresentam um melhor desempenho. Na consulta 5, por ser mais complexa, ficou mais visível a vantagem das bases distribuídas para a base centralizada. Isso pode ser percebido facilmente, pois o ganho de desempenho foi praticamente linear. Por exemplo, na base grande o tempo de resposta na base centralizada foi de 126,503 segundos, enquanto que na distribuída o tempo foi de 28,2024 segundos, ou seja, 4,48 vezes mais rápido. Também foram realizadas outras três consultas e o comportamento encontrado foi semelhante ao descrito nos gráficos da figura 2, como pode ser verificado nas tabelas 1 e 2. A tabela 1 mostra o tempo de resposta das cinco consultas realizadas na base de dados com quatro partições. A tabela 2 mostra a média dos tempos de resposta das cinco consultas realizadas em cada uma das três bases, sendo cada uma delas configurada de modo centralizado, distribuída em duas ou em quatro partições. 4
5 Tabela 1: Tempos de resposta para as 5 consultas realizadas em 4 máquinas Consultas/Bases Base 1 Base 2 Base 3 Consulta Consulta Consulta Consulta Consulta Tabela 2: Tempo médio de resposta para as três configurações Tamanho/Configuração Base 1 Base 2 Base 3 Centralizada partições partições Como visto na figura 2 e nas tabelas 1 e 2, o SGDB distribuído apresenta bons resultados, porém a sua principal desvantagem é a grande dependência da rede. É necessária uma rede local segura e confiável para sustentar a confiabilidade, consistência e eficiência do sistema. 6 Conclusão Através dos resultados obtidos, pode-se dizer que os SGBDs destinados a aglomerados de máquinas são uma boa solução para sistemas onde o principal objetivo é uma eficiente consulta aos dados, pois apresentam um bom custo/benefício. Utilizando-se esses sistemas é atingido um nível de desempenho satisfatório, já que o ganho de tempo em consultas é praticamente linear, ou seja, proporcional ao número de máquinas. Um aglomerado de máquinas comuns é mais barato que um servidor com um grande poder de processamento. Normalmente tais servidores são extremamente caros. Além disso, o servidor de banco de dados IBM DB2 pode ser utilizado sobre um sistema operacional Linux. A principal vantegem disso é que, sendo um sistema operacional de código aberto, apresenta baixo custo e oferece uma implementação estável, com um bom desempenho e confiabilidade satisfatória. Neste trabalho o objetivo foi analisar os SGBDs quanto a distribuição. Trabalhos futuros incluirão uma análise quanto a heterogeneidade. Referências [DEW 1992] DEWITT, D.; GRAY, J. Parallel Database Systems: The Future of High Performance Database Systems, Communications of The ACM, Volume 35, Number 6, June, [IBM 2002] IBM Corporation. Database and Data Management. ibm.com/software/data. 5
6 [IBM 2000] IBM Corporation. IBM DB2 Universal Database Administration Guide: Implementation [IBM 2000] IBM Corporation. IBM DB2 Universal Database Administration Guide: Performance [IBM 2001] IBM Corporation. IBM DB2 Universal Database SQL Reference [IKE 1996] IKEMATU, R. S. Como Desenhar, Implementar e Administrar Bancos de Dados Distribuídos, Seminário do DBForum, Bate Byte 55, Julho, [MOR 2001] MORENO, E. D. Banco de Dados: Uma visão de Arquitetura de Computadores e Computação de Alto Desempenho, Workshop em Sistemas Computacionais de Alto Desempenho, [SHI 2000] SHIRAI, T. et al. DB2 UDB V7.1 Performance Tuning Guide. IBM Redbooks