• Nenhum resultado encontrado

Um Comparativo de Consumo Elétrico entre Arquiteturas x86 e ARM em Servidores de Bancos de Dados

N/A
N/A
Protected

Academic year: 2021

Share "Um Comparativo de Consumo Elétrico entre Arquiteturas x86 e ARM em Servidores de Bancos de Dados"

Copied!
6
0
0

Texto

(1)

Um Comparativo de Consumo Elétrico entre Arquiteturas

x86 e ARM em Servidores de Bancos de Dados

Leonardo B. Motyczka1

, Edilaine R. Ferrari1

, Luciano Destefani1

, Vinícius Maran1 1

Departamento de Ciências Exatas e Engenharias (DCEEng) – Universidade Regional do Noroeste do Estado do Rio Grande do Sul (UNIJUI)

Caixa Postal 15.064 – Ijuí – RS – Brasil

{leomoty, edi.revers, lucianodestefani}@gmail.com, vinicius.maran@unijui.edu.br

Abstract. A major concern in servers is directly related to the power

consumption of these servers. This concern is directly related to operating costs and environmental issues. Thus, recent studies suggest the search for alternative technologies currently used in servers. In this study, we compared the power consumption between x86 and ARM architectures when applied to the use of NoSQL and relational DBMSs. Thus, it was possible to identify some characteristics as the application of certain architecture or database model.

Resumo. Uma das grandes preocupações em servidores está diretamente

relacionada com o consumo de energia elétrica destes servidores. Esta preocupação está diretamente relacionada a custos de operação e questões ambientais. Desta forma, trabalhos recentes propõem a busca por alternativas as tecnologias utilizadas atualmente em servidores. Neste trabalho, realizamos uma comparação de consumo elétrico entre arquiteturas x86 e ARM quando aplicadas ao uso de SGBDs relacionais e NoSQL. Desta forma, foi possível identificar características conforme a aplicação de determinadas arquiteturas ou modelos de banco de dados.

1. Introdução

Atualmente, há uma grande preocupação com o consumo de energia elétrica de servidores. Esta preocupação está diretamente relacionada aos custos de operação e questões ambientais. Desta forma, trabalhos recentes propõem a busca por alternativas as tecnologias utilizadas atualmente em servidores.

Estas alternativas são aplicadas em diversas áreas e a diversos tipos de aplicações. Uma das aplicações mais comuns em servidores são os sistemas gerenciadores de bancos de dados (SGBDs). Bancos de dados são coleções lógicas e coerentes de dados que possuem algum significado e que representam algum aspecto do mundo real. Além do modelo relacional – utilizado pela maioria dos SGBDs comerciais, outros modelos tem sido propostos para a estruturação de dados.

Neste trabalho, foi criado um estudo de caso, e baseado neste estudo de caso, foi realizada uma comparação do ponto de vista do consumo elétrico de dois servidores de bancos de dados medindo quantas instruções são executadas por watt.

(2)

Esta comparação foi feita com a utilização de duas variantes: (i) arquiteturas de processadores x86 e ARM, e (ii) Modelos de bancos de dados relacionais e orientados a documentos JSON. Os resultados foram obtidos através da implementação de uma ferramenta de benchmark, a qual avalia a viabilidade de se utilizar computadores baseados na arquitetura ARM como servidores, considerado a eficiência energética.

O artigo está estruturado da seguinte forma: Na Seção 2 são apresentadas as ferramentas de bancos de dados utilizadas no comparativo, a Seção 3 apresenta conceitos importantes relacionados a arquiteturas x86 e ARM. Na Seção 4 é apresentada a metodologia da comparação de consumo elétrico. A Seção 5 apresenta os resultados do estudo comparativo e as discussões sobre estes resultados. A Seção 6 apresenta as conclusões deste trabalho.

2. Ferramentas de Bancos de Dados

Nas ultimas três décadas a tecnologia de banco de dados vem evoluído rapidamente, conquistando maior espaço nas comunidades acadêmicas, porém são os sistemas de banco de dados relacionais que continuam dominando este tipo de tecnologia na área empresarial.

2.1. PostgreSQL

O PostgreSQL (Postgresql, 2013) é um Sistema Gerenciador de Banco de Dados de código aberto, o qual possui vários recursos utilizados em outros gerenciadores pagos, como chave estrangeira, consultas complexas, integridade transacional, suporte ao modelo hibrido objeto-relacional, controle de concorrência multiversão, facilidade de acesso, gatilhos, visões indexação por texto, entre outros.

2.2. CouchDB

O CouchDB (Couchdb, 2013) é um banco de dados não relacional, utilizado principalmente para web. Basicamente ele utiliza documentos para definir uma estrutura no banco, armazenando uma chave associada ao documento.

Dentre as principais características, pode-se destacar: Armazenamento de dados com documentos JSON; Acesso de documentos com o navegador web, via HTTP; Combina e transforma documentos com JavaScript; Suporte para aplicativos móveis; Possui detecção de conflitos automática; Mecanismo de armazenamento tolerante a falhas, priorizando a segurança dos dados.

Desta forma, cada documento JSON armazenado no CouchDB é um objeto que consiste em campos nomeados. Esses valores de campo podem ser cadeias de caracteres, valores booleanos, números, datas, listas ordenadas ou mapas associativos.

3. Arquiteturas de Servidores de SGBDs 3.1. Arquitetura x86

A nomenclatura X86, segundo Das (2010), surgiu a partir do conjunto de instruções de máquina, filosofia e da forma de uso que fora introduzido junto com o processador 8086. Mesmo que desenvolvido pela Intel, outras companhias também utilizaram o mesmo vocabulário, apesar de que seu design interno diferisse. Com os passar dos

(3)

anos, o x86 evoluiu e tornou-se o padrão de fato para computadores, notebooks a supercomputadores, mantendo compatibilidade com versões anteriores da arquitetura.

O conjunto de processadores da família x86 define um conjunto de tipos de instruções. Estes tipos são: movimentação de dados, aritmética e lógica, e sequenciamento. Adicionalmente, define outros tipos de instruções como manipulação de strings, manipulação de bits, e suporte a linguagens de alto nível (Abd-el-Barr, 2004).

Os processadores x86, ao contrário dos ARM com RISC puro, são híbridos com decodificadores CISC/RISC, ou seja, eles recebem instruções CISC, que são convertidas em instruções RISC para serem trabalhadas internamente buscando aperfeiçoar o processamento através do uso de pipeline.

Pelo fato da arquitetura x86 suportar muitas instruções acabou se tornando a preferida entre os programadores, o que consequentemente aumentou à oferta de softwares levando à arquitetura a maioria dos computadores pessoais e servidores.

3.2. Arquitetura ARM

É uma arquitetura de 32 bits baseada no sistema de instruções RISC usada principalmente em sistemas embarcados. A arquitetura começou a ser desenvolvida em 1983 pela empresa Acorn Computers de Cambridge, na Inglaterra. Esta era uma aposta para concorrer com processadores mais complexos que se encontravam no mercado como o caso do 286 da Intel (Sloss, 2004).

A arquitetura RISC - Reduced Instruction Set Computer, serve de base para os chips ARM, e é uma arquitetura voltada ao desempenho e baixo custo criada em resposta a a arquitetura x86. Contrário aos microchips Intel, a RISC possui poucas e simples instruções dentro do processador, o que torna a execução de suas instruções consideravelmente rápida.

Segundo Sloss (2004), processadores ARM são o componente chave de muitos dispositivos embarcados. Os núcleos ARM são utilizados largamente em dispositivos móveis, PDAs e muitos outros dispositivos portáteis do dia a dia.

O Raspberry Pi pode ser definido com um computador do tamanho de um cartão de crédito desenvolvido no Reino Unido pela Fundação Raspberry Pi. Todo o hardware é integrado em uma única placa, sendo um dos seus principais objetivos estimular o ensino de ciência da computação básica em instituições de ensino.

É baseada em um sistema com um único chip (SoC - System on a Chip), desenvolvido pela Broadcom, utiliza o modelo BCM28357 que inclui um processador ARM1176JZF-S de 700 MHz, GPUVideoCore IV, e 512 MB de memória RAM. O projeto não inclui uma memória não-volátil - como um disco rígido - mas possui uma entrada de cartão SD para armazenamento de dados.

4. Metodologia do Comparativo

Os bancos de dados foram avaliados de acordo com a relação entre a quantidade de operações possíveis no banco de dados por segundo e o consumo de determinada plataforma. Este consumo será mensurado utilizando um multímetro e uma fonte de bancada, os mesmos serão apresentados junto com os resultados.

(4)

A fim de comparação destes bancos de dados em arquiteturas distintas fora desenvolvido uma ferramenta de benchmark utilizando a linguagem de programação C# e executada na máquina virtual Mono - multiplataforma e livre de custos (BORNSTEIN, 2004).

Esta ferramenta é capaz de medir o tempo necessário para executar um conjunto de instruções no modelo CRUD (Create, Read, Update, Delete) nos bancos de dados PostgreSQL e CouchDB. O número de instruções é extraído a partir do tempo necessário para executar um determinado teste em uma plataforma com um número fixo de iterações. Por exemplo, caso a entrada seja 5000 iterações e o tempo necessário para executar este conjunto seja 2 segundos, então, serão 2500 instruções por segundo.

O hardware utilizado na comparação consiste no equipamento disponível, estes sendo um notebook Dell XPS 15 (L502X) utilizando o sistema operacional Windows, e uma Raspberry Pi utilizando a distribuição Raspbian baseada em Linux, que é um computador de baixo consumo e que pode ser comprado, em média, por US$ 35. As especificações do notebook Dell XPS 15 (LX502) são as seguintes:

• Intel Core i7 2630QM 2 GHZ, 4 cores (8 threads), 6 GB DDR3 1333 MHZ Já o Raspberry Pi conta com as seguintes especificações:

• ARM1176JZF-S (armv6k) 700 MHZ, 1 core (1 thread), 512 MB RAM

Foi realizada uma análise comparativa da utilização de dois bancos de dados de categorias diferentes em plataformas distintas, sendo estes os bancos de dados PostgreSQL e CouchDB e as plataformas ARM e X86.

5. Resultados e Discussão

A plataforma de testes utilizadas (Figura 1) consiste em uma Fonte de Bancada (A), um multímetro (B). Em A é apresentado a tensão e a corrente utilizada pela Raspberry Pi (5V e aproximadamente 0.4A), enquanto em B é apresentado a corrente em um determinado momento de tempo pelo notebook.

Figura 1. Plataforma de Testes

Conforme as medições de correntes, e utilizando a definição de potência (P = I * U). Onde I é a corrente consumida pelo circuito e U é o valor de tensão. Foi possível obter o consumo de 2W para a Raspberry Pi e de 66W para o notebook. Em ambos casos, os valores apresentados são médias e podem estar considerando mais do que os dispositivos necessários para o teste, no caso do notebook, o consumo da tela, wireless, etc.

B

(5)

Figura 3. Tempos de resposta das operações realizadas no banco de dados CouchDB na arquitetura x86 (a esquerda), e ARM (a direita)

A Figura 2 apresenta o tempo médio (ms) de cada uma das operações convencionais em um banco de dados a partir de um número de iterações desenvolvidas no CouchDB.

A tendência é que quanto maior a quantidade de iterações maior será o tempo final de execução. Ainda, as operações de update e delete não obtiveram valores consistentes com aqueles apresentados no x86 e portanto foram desconsiderados. A Figura 3 apresenta os tempos de resposta das operações realizadas no banco de dados PostgreSQL.

Figura 3. Tempos de resposta das operações realizadas no banco de dados PostgreSQL na arquitetura x86 (a esquerda), e ARM (a direita)

Após a realização dos testes de comparação dos tempos de resposta de acordo com as operações e arquiteturas, realizamos uma comparação de seleções por watt considerando as arquiteturas x86 e ARM, e as ferramentas PostgreSQL e CouchDB. Os resultados são apresentados na Figura 5.

É possível perceber que o PostgreSQL é o banco de dados que possui maior eficiência energética tanto no x86 como no ARM para a ação de selecionar dados contidos na base de dados.

O CouchDB possui uma otimização interna utilizando árvores B que permitiria a execução mais rápida de Selects subsequentes, por este motivo foram realizadas duas iterações do Select para verificar se haveria um ganho significativo em performance.

ms / número de operações

ms / número de operações ms / número de operações

(6)

Figura 5. Análise de consultas por watt

Apesar de ser possível produzir um número de magnitude de 5000 instruções por watt em um banco de dados ARM, este caso não pode ser replicado numa Raspberry Pi, mas pode ser analisado como uma tendência na hora de considerar utilizar uma ou mais placas ARM como um servidor de banco de dados.

6. Conclusões

A tendência de utilizar processadores ARMs para processos que hoje são genuinamente uma fatia do mercado x86 é uma viável até certo ponto. O estudo realizado neste artigo apresenta que é possível obter uma maior eficiência energética se considerado puramente as tendências de performance em relação ao consumo total do sistema.

É constatado que um banco de dados não-relacional como o CouchDB, se sai melhor em operações de leitura do que nas outras operações mensuradas. Também foi percebida uma otimização interna para leituras subsequentes para uma mesma base de dados inalterada. Esta característica possui potencial para aplicações que envolvam poucas alterações na base de dados mas muitas leituras e desejem baixo consumo.

Para trabalhos futuros, serão realizadas otimizações dos processos da ferramenta de benchmark de forma que possa ser realizado as operações de Update e

Delete em sistemas ARM. Além da averiguação da viabilidade de utilizar a replicação

de banco de dados para compensar a baixa performance relativa de um dispositivo como a Raspberry Pi.

Referências Bibliográficas

Abd-el-Barr, M; El-Rewini, H. Fundamentals of Computer Organization and

Architecture. Wiley-Interscience. 2004.

Bornstein N. M., Dumbill, E.. Mono: A Developer's Notebook. O'Reilly. ISBN 0-596-00792-2. July 2004.

CouchDB Website. Disponível em: <http://couchdb.apache.org>. Acesso em 08/06/2013.

Das, Lyla B.. The X86 Microprocessors: Architecture and Programming (8086 To

Pentium). Pearson, 2010.

PostgreSQL Website. Disponível em http://www.postgresql.org.br/, acesso em 07/06/2013.

Sloss, A. N.; SYMES, Dominic; WRIGHT, Chris. ARM System Developer’s Guide:

Referências

Documentos relacionados

Mineração de conhecimento interativa em níveis diferentes de abstração: Como é  difícil  prever  o  que  exatamente  pode  ser  descoberto  de  um  banco 

função recursiva, mais recursos de memória são necessários para executar o programa, o que pode torná-lo lento ou. computacionalmente

 Caminho simples que contém todas as arestas do grafo (e,. consequentemente, todos os

Os casos não previstos neste regulamento serão resolvidos em primeira instância pela coorde- nação do Prêmio Morena de Criação Publicitária e, em segunda instância, pelo

 Numéricos das das Propriedades Propriedades do do Ar Ar Úmido, Úmido, Cartas Cartas Psicrométricas, Psicrométricas, Processos Processos Psicrométricos, Psicrométricos,

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Foram realizados testes em garrafões de 20 litros para estabelecer critérios de operação e dimensionamento de uma planta de lixiviação em pilhas permanentes para tratar

Pode haver alguns acordos prévios, como visto na classificação proposta em trabalho anterior (GUERRERO, 2006), mas estes são propostos sempre mantendo elevado