SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
Engenharia e Administração de Sistemas de Banco de Dados
Faculdade de Tecnologia / Universidade Estadual de Campinas
Pg. 1
I. INTRODUÇÃO
virtualização foi implementada há quase 50 anos pela
IBM como forma de criar partições lógicas dos
computadores mainframe em máquinas virtuais separadas
que permitiam executar várias tarefas, ou seja, vários
aplicativos e processos ao mesmo tempo. Como os
mainframes eram recursos caros naquela época, eram
projetados para o particionamento como forma de aproveitar
totalmente o investimento. Com o passar do tempo, a
virtualização evoluiu e chegou ao mercado com força total,
representando inovação e proporcionando recursos altamente
eficientes para as empresas e organizações. [5]
A necessidade de virtualizar um sistema operacional surge
quando se percebe que a aplicação que está em funcionamento
no servidor consome apenas uma pequena parte dos recursos
de hardware existentes, ou seja, haveria sobra e
conseqüentemente, desperdício. Desta forma, um melhor
aproveitamento seria utilizar a virtualização para compartilhar
o hardware com diversas outras máquinas virtuais, e assim
extrair um melhor proveito dos recursos do servidor.
Na década de 90, 40 anos depois do surgimento da
virtualização, uma nova infraestrutura de computação
distribuída foi proposta para auxiliar o desenvolvimento
científico e atividades de pesquisa. Vários modelos desta
infraestrutura foram especificados, dentre elas, a Computação
em Grade, em analogia às redes elétricas, em que se propõe a
apresentar ao usuário como um computador virtual,
mascarando toda a infraestrutura distribuída. Seu objetivo era
unir tecnologias heterogêneas e geograficamente dispersas.
[10] Pesquisadores da área acreditam que a tecnologia de
grades computacionais seja a evolução dos sistemas
computacionais atuais, não sendo apenas um fenômeno
tecnológico, mas também social, pois num futuro próximo
reuniria recursos e pessoas de várias localidades, com várias
atividades diferentes numa mesma infraestrutura,
possibilitando sua interação de uma forma antes impossível.
[10]
A tecnologia em grade vem sendo difundida e aperfeiçoada
devido ao grande esforço do Global Grid Forum (GGF), uma
comunidade formada por entidades do meio científico e
corporativo que criam e padronizam tecnologias para
ambientes em grade.
A IBM também deu inicio aos primeiros clusters na década de
60, quando interligou seus mainframes em rede afim de que
pudesse ter assim um processamento paralelo. Os clusters de
computadores ganharam ainda mais força quando as três
tendências convergiram nos anos 1980, microprocessadores de
alta performance, redes de alta velocidade, e ferramentas
padronizadas para computação distribuída de alto
desempenho, juntamente com a crescente necessidade de alto
poder de processamento para aplicações científicas e
comerciais, unida ao alto custo e a baixa acessibilidade dos
tradicionais supercomputadores.
Assim como computação em grade, o termo nuvem vem da
idéia de abstração. Neste sentido, a nuvem representa uma
rede de algum tipo cuja estrutura não precisa ser conhecida
para o usuário.
No Brasil a tecnologia de computação em nuvem é muito
recente, mas está se tornando madura muito rapidamente.
Empresas de pequeno, médio e grande porte estão adotando a
tecnologia gradativamente, sendo que o serviço que começou
a ser oferecido comercialmente em 2008. Mas foi a partir de
2009 que a tecnologia evoluiu consideravelmente,
incorporando funcionalidades e utilizando diversas novas
tecnologias.
A principal proposta do Cloud Computing - ou computação na
nuvem - era a de que ninguém mais precisaria instalar
programa algum em seu computador para realizar desde
tarefas básicas, como mexer com editores de texto ou
planilhas até trabalhos mais complexos, como edição de
imagens e vídeos, pois tudo seria feito pela internet.
II. OBJETIVO
Verificar questões relacionadas ao desempenho de um
servidor web quando executado em um ambiente de
computação isolado, usando-se a rede para a comunicação
cliente e servidor, usando-se um sistema de arquivo
compartilhado para armazenamento das páginas e um cluster
de computadores para prover o referido serviço.
André Danelon e Rodrigo Figueiredo
Desempenho de um Servidor Web em
Ambientes de Computação Isolados
A
Engenharia e Administração de Sistemas de Banco de Dados
Faculdade de Tecnologia / Universidade Estadual de Campinas
Pg. 2
III. VIRTUALIZAÇÃO
A virtualização foi desenvolvida na década de 60 para
utilizações em computadores de grande porte, visando obter
uma melhor utilização através da criação de partições lógicas.
Atualmente, os PC’s enfrentam os mesmos problemas de
subutilização do hardware que os mainframes enfrentaram nos
anos 60. Devido à isso, nos anos 90 foi criada a virtualização
para arquitetura x86.[2]
Uma definição simples seria que virtualização é o processo de
executar vários sistemas operacionais em um único
equipamento físico. Uma máquina virtual é um ambiente
operacional completo que se comporta como se fosse um
computador independente. Com a virtualização, um servidor
pode manter vários sistemas operacionais em uso.[1]
Uma máquina virtual se comporta exatamente como um
computador físico, pois possui CPU, memória RAM, disco
rígido e placa de interface de rede. Entretanto, a máquina
virtual é composta inteiramente de software, ou seja, não
contém componentes de hardware.
As máquinas virtuais possuem algumas características e
também vantagens em relação ao hardware físico. São elas:
• Compatibilidade: são compatíveis com todos os
computadores x86 padrão.
• Isolamento: são isoladas umas das outras, como se
estivessem fisicamente separadas.
• Encapsulamento: encapsulam um ambiente de computação
completo.
• Independência de hardware: são executadas
independentemente do hardware subjacente.
A virtualização de computadores é amplamente utilizada para
a consolidação de servidores em data centers, principalmente
para reduzir custos.
O principal elemento na virtualização de computadores é o
hipervisor, conhecido como monitor de máquinas virtuais
(VMM). O hipervisor aloca recursos do sistema para cada
ambiente virtual, podendo ser instalado como uma aplicação,
ou como parte do sistema operacional. A função do hipervisor
é emular dispositivos, instruções, entre outros, fazendo o
ambiente virtual acreditar que tem acesso exclusivo sem
compartilhamento com outras maquinas virtuais.[4]
A virtualização pode ser feita em quatro níveis:
• Abstração da Instruction Set Architecture (ISA): Baseada
em emulação, esse tipo de virtualização é implementada pela
execução do sistema virtual, através de um mapeamento das
instruções para o conjunto de instruções nativas. Uma
consequência do uso desse tipo de virtualização é a perda de
desempenho na execução das tarefas do sistema virtual.
• Camada de abstração de hardware (Hardware Abstraction
Layer - HAL): O hipervisor da máquina virtual simula a
arquitetura completa da máquina para o sistema virtual. O
sistema virtual acredita estar sendo executado diretamente
sobre um hardware físico, sem perceber que é virtualizado.
Esse nível de virtualização é o mais popular. Alguns sistemas
desse nível são VMware, Virtual PC e VirtualBox.
• Nível de sistema operacional: Nesse tipo de virtualização,
conjuntos de processos são executados de forma isolada sobre
o mesmo sistema operacional. A cada ambiente virtual é
possível atribuir uma quantidade dos recursos físicos e
programar qualquer tipo de aplicação ou serviço. A restrição
principal desse tipo de virtualização é que todos os ambientes
devem utilizar o mesmo sistema operacional.
• Nível de Aplicação: A virtualização no nível de aplicação
consiste na abstração da camada de execução. Essa solução é
utilizada para fazer com que um determinado software
funcione sobre qualquer sistema operacional. O principal
exemplo desse tipo de virtualização é o Java Virtual Machine
(JVM).
Com a virtualização pode-se criar uma infraestrutura virtual,
permitindo compartilhar os recursos físicos de várias
máquinas entre ela. É possível criar uma infraestrutura virtual
inteira dimensionando centenas de computadores físicos e
dispositivos de armazenamento interconectados com um
sistema de virtualização. [2]
A infraestrutura virtual consiste nos seguintes componentes:
Hipervisors para virtualização completa de cada computador
x86; serviços de infraestrutura virtual, como gerenciamento de
recursos para otimizar os recursos disponíveis entre as
máquinas virtuais; soluções de automação que fornecem
recursos especiais para otimizar um processo de TI específico,
por exemplo recuperação de desastres.
Segue uma representação gráfica de um ambiente utilizando
uma infraestrutura virtual.
Figura 1. Infraestrutura Virtual
Engenharia e Administração de Sistemas de Banco de Dados
Faculdade de Tecnologia / Universidade Estadual de Campinas
Pg. 3
IV. MODELOS DE
COMPUTAÇÃO
Grids
Grids Computacionais surgiram na década de 90 da
comunidade de processamento de alto desempenho (PDA),
com a promessa de viabilizar a execução de aplicações
paralelas em recursos geograficamente dispersos. A origem do
termo Grid foi criada com base no sistema da rede elétrica
(The Electric Grid), onde se usa a eletricidade sem se ter o
conhecimento de onde ela foi gerada, e de forma transparente
para os usuários. [8]
A necessidade da criação de uma nova plataforma
computacional era possibilitar através da aglomeração de
recursos dispersos a execução de aplicações paralelas em uma
escala simplesmente impossível em um único
supercomputador. As grades computacionais podem ser
definidas de dois modos. Primeiro como sendo um modo de
compartilhamento de recursos e resolução de problemas em
organizações virtuais dinâmicas, e o segundo como sistemas
que dão suporte a criação de aplicações paralelas que agregam
e fornecem recursos heterogêneos distribuídos
geograficamente de forma econômica e consistente.
O grid é uma forma de computação distribuída, mas ela possui
características distinta sendo mais complexa do que as demais
plataformas distribuídas. [8]
Aspectos que evidenciam esta distribuição e complexidade
são:
• Heterogeneidade: Os componentes que formam a
infraestrutura tendem ser extremamente heterogêneos, ou seja,
deverá lidar com recursos de várias gerações, softwares de
várias versões, instrumentos e serviços dos mais variados
tipos.
• Alta dispersão geográfica: Essa característica se refere a
escala que um grid pode atingir. Grids podem ter escala
global, agregando serviços localizados em várias partes do
planeta.
• Compartilhamento: Em contraste com soluções space-shared,
um grid não pode ser dedicado a uma aplicação de forma
exclusiva por um determinado período de tempo. Isso tem
impacto no desenvolvimento de aplicações que executam
sobre a infraestrutura de um grid Computacional.
• Múltiplos domínios administrativos: Grids congregam
recursos de varias instituições. Sendo assim, alem da
heterogeneidade mencionada anteriormente, é possível
também a existência de varias políticas de acesso e uso dos
serviços, de acordo com as diretrizes de cada domínio que faz
parte do grid.
• Controle distribuído: Tipicamente não ha uma única
aplicação/usuário que tenha poder sobre todo o grid. Isso é um
reflexo da dispersão dos componentes do grid, pois cada
instituição pode implementar sua política em seus recursos
locais, mas não interfere diretamente na implementação de
políticas no acesso aos serviços de outras instituições
participantes.
Um grid computer funciona como um grande computador
virtual onde as aplicações são executadas. Esse computador
virtual tem uma forte integração de servidores, discos e outros
recursos capazes de compartilhar recursos de forma rápida e
de fácil gerenciamento. Um exemplo de projeto que utiliza o
processamento distribuído através de grid é o projeto
SETI@home (http://setiathome.ssl.berkeley.edu), que é uma
continuação do projeto da NASA em busca de inteligência
extraterrestre. O Seti@home usa um software que pode ser
baixado da Internet, em que um microcomputador pode
analisar sinais de rádio telescópio. Atualmente, existem 1,6
milhões de microcomputadores espalhados em 224 países que
contribuem com o processamento, criando um computador
virtual com uma média de 10 trilhões de operações por
segundo.
Cluster
Assim como um Grid, Cluster é um sistema distribuído de
computadores independentes e interligados, cujo objetivo é
suprir a necessidade de um grande poder computacional com
um conjunto de computadores de forma transparente ao
usuário.[10] Os clusters podem ser centralizados, quando estão
em um mesmo local, com máquinas homogêneas montadas
em racks, ou descentralizadas, em que os computadores estão
espalhados conectados via LAN e são máquinas heterogêneas
com um conjunto completo de periférico.
Figura 2. Arquiteruta Generica de um Cluster
Um cluster é composto por nós e cada nó possui uma função.
O nó de controle, de usuário, de computação, o nó de
armazenamento, o nó de instalação e o nó de gerenciamento.
A figura 3 detalha a funcionalidade de cada um desses nós.
Engenharia e Administração de Sistemas de Banco de Dados
Faculdade de Tecnologia / Universidade Estadual de Campinas
Pg. 4
Figura 3. Funções dos Nós em um Cluster
Alguns modelos de cluster são:
 Cluster de Alto Desempenho: Permite que ocorra uma
grande carga de processamento com um volume alto de
gigaflops em computadores comuns, utilizando sistema
operacional gratuito, o que diminui seu custo.
 Cluster de Alta Disponibilidade: Seus sistemas conseguem
permanecer ativos por um longo período de tempo e em
condição de uso. Sendo assim, podemos dizer que eles nunca
param seu funcionamento, e além disso, conseguem detectar
erros se protegendo de possíveis falhas.
 Cluster para Balanceamento de Carga: Esse tipo de cluster
tem como função controlar a distribuição equilibrada do
processamento. Requer um monitoramento constante na sua
comunicação e em seus mecanismos de redundância, pois se
ocorrer alguma falha haverá uma interrupção no seu
funcionamento.
Uma das razões para se construir e utilizar um cluster ou uma
combinação de cluster é quando o conteúdo armazenado é
extremamente crítico e não pode ficar inacessível, ou quando
os serviços precisam estar disponíveis/processados o mais
rápido possível. Organizações e pesquisadores precisam
incrementar sua escalabilidade, gerenciamento de recursos,
disponibilidade ou processamento a um nível
supercomputacional, com um baixo custo. Por exemplo, sites
de comércio eletrônico freqüentemente necessitam de alta de
disponibilidade e balanceamento de carga de forma escalável.
Atualmente, o cluster com maior capacidade de
processamento da historia foi desenvolvido pelos Cientistas da
Universidade Nacional de Tecnologia e Defesa (UNTD) da
China, este supercomputador duplica as capacidades do Titan,
o supercomputador norte-americano, que possui 17,6 petaflops
por segundo. O Tianhe-2 ou “Via- Láctea” é capaz de
processar 30,7 petaflops por segundo, o equivalente a um
quatrilhão de cálculos por segundo. Este será usado para
processamento de dados de uma imensidade de informações,
simulação de cataclismos e desastres naturais, no âmbito da
segurança nacional. [11]
Figura 4. Supercomputador Tianhe-2
Cloud
Cloud computing - ou computação nas nuvens - é,
essencialmente a ideia de utilizarmos, em qualquer lugar e
independente da plataforma, as mais variadas aplicações por
meio da Internet, com a mesma facilidade de tê-las instaladas
em nossos próprios computadores. O termo nuvem vem da
idéia de abstração, neste sentido, a nuvem representa uma rede
de algum tipo cuja estrutura não precisa ser conhecida para o
usuário. [12]
Para computação na nuvem pode-se considerar três modelos:
 Nuvem Pública: Pode-se dizer basicamente que a
computação nas nuvens é um sistema composto de duas
partes, o provedor da solução e o utilizador, que pode ser uma
pessoa, uma empresa ou qualquer outra organização. Um
exemplo desse esquema é o Google Docs, em que o usuário só
precisa acessar o site para ter acesso a editor de textos, fazer
planilhas e elaborar slides.
 Nuvem Privada: Para o usuário uma nuvem privada se
comporta da mesma maneira que uma nuvem pública, porém,
os equipamentos e sistemas utilizados para constituir a nuvem
estão dentro da infraestrutura da própria corporação, ou seja a
organização faz uso de uma nuvem particular, construída e
mantida dentro de seus estrutura. Essa nuvem pode seguir
todas as regras da empresa respeitando as políticas, objetivos e
outros aspectos referente a atividade da empresa. Nuvens
privadas são mais comuns em grandes corporações como
Microsoft, IBM e HP.
 Nuvem Híbrida: Para ter um controle sobre os custos e
maior flexibilização de operações as organizações podem
optar também pelas nuvens híbridas. Nelas, determinadas
aplicações são direcionadas às nuvens públicas, enquanto que
outras, normalmente mais críticas, permanecem sob a
responsabilidade de sua nuvem privada. Não é preciso utilizar
apenas um tipo de nuvem quando se quer implementar um
ambiente cloud. As nuvens públicas e privadas não são
modelos incompatíveis entre si, ou seja, pode-se aproveitar o
melhor dos dois.
Cloud computing está intimamente ligada ao conceito de
Software as a Service (SaaS), ou Software como Serviço. Quer
dizer que, é uma forma de trabalho onde o software é
oferecido como serviço. Assim, o usuário ou empresa não
Engenharia e Administração de Sistemas de Banco de Dados
Faculdade de Tecnologia / Universidade Estadual de Campinas
Pg. 5
precisa adquirir licenças de uso ou mesmo comprar
computadores ou servidores para executá-lo. Com este
conceito, paga-se um valor periódico como se fosse uma
assinatura somente pelos recursos utilizados, e/ou pelo tempo
de uso. Além dessas vantagens, o hardware, instalação,
atualização, manutenção, entre outros, são de
responsabilidades do fornecedor do serviço. O
usuário/empresa só precisa se preocupar com o acesso ao
serviço, no caso, uma conexão com à Internet ou, se
necessário, com a simples instalação de algum recurso
mínimo, como um plugin no browser de suas máquinas.
Atualmente têm-se os conceitos do SaaS utilizados por
algumas companhias para diferenciar os seus serviços. São
eles:
 Platform as a Service (PaaS): É um tipo de solução mais
amplo para determinadas aplicações, incluindo todos os
recursos necessários à operação, como armazenamento, banco
de dados, escalabilidade, suporte a linguagens de
programação, segurança e etc.
 Database as a Service (DaaS): Fornece serviços para
armazenamento e acesso de volumes de dados. A vantagem é
que o detentor da aplicação conta com maior flexibilidade para
expandir o banco de dados, compartilhar as informações com
outros sistemas, facilitar o acesso remoto por usuários
autorizados, entre outros.
 Infrastructure as a Service (IaaS): Similar ao PaaS, mas aqui
o foco é a estrutura de hardware ou de máquinas virtuais, com
o usuário tendo inclusive acesso a recursos do sistema
operacional
 Testing as a Service (TaaS): Oferece um ambiente
apropriado para que o usuário possa testar aplicações e
sistemas de maneira remota, simulando o comportamento
destes em nível de execução.
Os termos cloud computing e computação nas nuvens são
relativamente recentes, mas já existem vários serviços
oferecidos como por exemplo o Google Apps, Amazon, Panda
Cloud Antivirus e iCloud.
V. AMBIENTE
DESENVOLVIDO
Os testes foram realizados em ambientes virtualizados. O
software de virtualização utilizado foi o VirtualBox, da
empresa Oracle, o qual é Open Source. O VirtualBox permite
a instalação e utilização de um sistema operacional dentro de
outro. Para o sistema operacional, a escolha foi o Linux, com
sua distribuição SLAX (Slackware). O SLAX é um Live CD,
podendo ser executado sem instalação no disco rígido - ou
mesmo em um computador sem disco rígido. A utilização do
modo texto do SLAX implica num menor consumo de
memória RAM, evitando assim interferências no resultado dos
testes.
Primeiro foi criada uma máquina base virtualizada, a qual
serviu para a clonagem de outras cinco máquinas virtuais:
- Máquina NP01: nó de processamento que irá receber uma
requisição de um usuário, e irá se comunicar com o nó de
armazenamento pelo balanceamento de um dos três nós de
comunicação.
- Máquina NC01: primeiro nó de comunicação que irá compor
o cluster, para acesso balanceado ao nó de armazenamento.
- Máquina NC02: segundo nó de comunicação que irá compor
o cluster, para acesso balanceado ao nó de armazenamento.
- Máquina NC03: terceiro nó de comunicação que irá compor
o cluster, para acesso balanceado ao nó de armazenamento.
- Máquina NA01: nó de armazenamento dos dados.
O NIS (Network Information Service), o qual é um serviço
desenvolvido pela SUN com a finalidade de disseminar
informações de uma rede, foi utilizado para comunicação do
cluster. Ele foi configurado na máquina NA01.
Para a mudança do endereço de origem das conexões para
outro destino, foi configurado o NAT Postrouting na máquina
NP01.
A máquina NP01, responsável pelo balanceamento, o faz
através do IPVS. O IPVS ou Linux Virtual Server (LVS) é
uma solução de balanceamento de carga avançada para
sistemas Linux. É um projeto Open Source começado por
Wensong Zhang em maio de 1998. A missão do projeto é
construir um servidor de alto desempenho e altamente
disponível para Linux usando a tecnologia de clustering, que
fornece altos níveis de escalabilidade, confiabilidade e
usabilidade.
Em cada um dos 3 nós foram utilizadas 3 aplicações para os
testes de desempenho do cluster:
- MYSQL: sistema de gerenciamento de banco de dados
(SGBD) Open Source, que utiliza a linguagem SQL
(Linguagem de Consulta Estruturada, do inglês Structured
Query Language) como interface. É atualmente um dos bancos
de dados mais populares, com mais de 10 milhões de
instalações pelo mundo.
- SSH (Secure Shell): aplicação e protocolo de rede para
conexão e execução remota de comandos.
- Apache HTTP Server: servidor WEB compatível com o
protocolo HTTP.
Engenharia e Administração de Sistemas de Banco de Dados
Faculdade de Tecnologia / Universidade Estadual de Campinas
Pg. 6
VI. TESTES
Os testes foram realizados em maquinas virtualizadas em
ambientes de computação isolados.
Os cenários montados estão descritos abaixo:
1º Cenário: Definindo um padrão de comportamento para a
interação entre o cliente e o SGBD.
Execução de testes - Conexão Local com o SGDB.
2º. Cenário: Observando o impacto que a rede de comunicação
proporciona no desempenho quando da interação cliente e
SGBD, localizados em equipamentos distintos.
Execução de testes - Conexão Remota com o SGDB (rede).
3º. Cenário: Observando o impacto causado no desempenho
quando o SGBD deve manipular tabelas que estejam
armazenadas em sistemas de arquivos compartilhados.
Execução de testes - Conexão Remota com o SGDB (rede).
4º. Cenário: Observando o impacto causado no desempenho
quando se utiliza um balanceador de carga atuando como
intermediário entre o cliente e o SGBD.
Execução de testes - Conexão Remota com o SGDB (cluster).
5º. Cenário: Observando o impacto causado no desempenho
quando se utiliza um SGBD em um cluster de balanceamento
de carga.
Execução de testes - Conexão Remota com o SGDB (cluster).
Engenharia e Administração de Sistemas de Banco de Dados
Faculdade de Tecnologia / Universidade Estadual de Campinas
Pg. 7
VII. RESULTADOS
Os resultados obtidos através dos testes foram bastante
satisfatórios e significativos para definição de várias métricas.
Abaixo seguem duas tabelas comparando os resultados
encontrados.
Tabela 1. Comparação entre usuário x quantidade de requisições
É possível observar que em todos os cenários testados o tempo
de resposta aumenta exponencialmente com o incremento da
quantidade de requisições para todos os usuários. Para cada
100 incrementos nos melhores casos o aumento é em média
0,7 segundos, conforme os resultados para o usuário user, e
nos piores casos o aumento chega a ser mais de 30 segundos,
como mostrado no cenário 4, utilizando um balanceador de
carga como intermediário entre o cliente e o SGBD, para o
usuário real no incremento de 400 para 500 requisições.
Os cenários 1, 2 e 3 possuem tempos muito parecidos,
variando qual ambiente é o mais veloz de acordo com a
quantidade de requisições e do usuário que está executando.
Por exemplo, no cenário 1, que utiliza uma conexão local com
o SGDB, para 100 requisições com usuário user obteve 0,616
segundos, já para 300 requisições no cenário 2, utilizando uma
conexão remota com o SGDB onde o cliente fica em uma rede
distinta do banco de dados, executando com usuário real
obteve-se 26,127 segundos e para 500 requisições o cenário 3,
que utiliza um armazenamento de tabelas compartilhado, com
o cliente, SGDB e armazenamentos em redes distintas,
mostrou-se mais eficiente ao executar em 6,008s com o
usuário sys.
Os cenários 4 e 5 utilizando o usuário real tiveram resultados
extremamente lentos. Os testes com mais de 300 requisições o
tempo passa de um minuto e para 500 requisições chega a
demorar mais de dois minutos. Porém, nesses ambientes entre
o usuário sys obtiveram-se os melhores tempos quando as
quantidades de requisições são maiores do que 300, conforme
exemplo no cenário 5, utilizando um cluster de balanceamento
de carga para as requisições feitas no SGBD, com
armazenamento em ambiente compartilhado e nós de cliente,
balanceamento, computação e armazenamento em redes
distintas, para 500 requisições o tempo de execução foi de
5,932 segundos e no cenário 4, em que os nós também estão
em redes distintas com um balanceador de carga entre o
cliente e o SGDB e armazenamento compartilhado, foi de
5,960s.
Abaixo segue outra tabela fazendo uma comparação entre os
usuários com os cenários testados pela quantidade de
requisições.
Cenários x
Usuario
1 100 200 300 400 500
1 x Real 0.131s 9.497s 19.366s 19.366s 35.877s 44.359s
2 x Real 0.214s 8.669s 17.406s 17.406s 34.947s 43.760s
3 x Real 0.168s 9.124s 18.672s 18.672s 36.688s 45.921s
4 x Real 0.259s 24.150s 52.903s 52.903s 1m47.510s 2m22.131s
5 x Real 1.069s 23.822s 48.162s 48.162s 1m38.325s 2m8.951s
1 x user 0.000s 0.616s 1.260s 1.960s 2.536s 3.060s
2 x user 0.008s 0.644s 1.240s 1.884s 2.640s 3.156s
3 x user 0.008s 0.764s 1.500s 2.320s 2.952s 3.808s
4 x user 0.008s 0.812s 1.624s 2.296s 3.020s 3.996s
5 x user 0.008s 0.752s 1.500s 2.416s 3.312s 3.992s
1 x sys 0.040s 1.380s 2.936s 3.948s 5.020s 6.392s
2 x sys 0.076s 1.344s 3.080s 4.520s 5.684s 7.456s
3 x sys 0.052s 1.212s 2.808s 3.420s 5.024s 6.008s
4 x sys 0.024s 1.168s 2.248s 3.548s 4.748s 5.960s
5 x sys 0.024s 1.240s 2.424s 3.380s 4.736s 5.932s
Tabela 2. Comparação entre cenários x usuários x quantidade de requisições
Nesta tabela é possível analisar que o utilizando o usuário real
os tempos de execuções foram mais lentos em todos os
cenários, e que utilizando o user obtiveram-se os melhores
resultados. Comparando os resultados para o mesmo usuário
entre os ambientes têm-se entre os mais lentos, os cenários 4 e
5. Assim o cenário 5, utilizando um cluster de balanceamento
de carga com os nós em redes distintas é o mais lento para
poucas quantidades de requisições, já o cenário 4, com um
Cenário 1 1 100 200 300 400 500
real 0.131s 9.497s 19.366s 27.420s 35.877s 44.359s
user 0.000s 0.616s 1.260s 1.960s 2.536s 3.060s
sys 0.040s 1.380s 2.936s 3.948s 5.020s 6.392s
Cenário 2 1 100 200 300 400 500
real 0.214s 8.669s 17.406s 26.127s 34.947s 43.760s
user 0.008s 0.644s 1.240s 1.884s 2.640s 3.156s
sys 0.076s 1.344s 3.080s 4.520s 5.684s 7.456s
Cenário 3 1 100 200 300 400 500
real 0.168s 9.124s 18.672s 27.388s 36.688s 45.921s
user 0.008s 0.764s 1.500s 2.320s 2.952s 3.808s
sys 0.052s 1.212s 2.808s 3.420s 5.024s 6.008s
Cenário 4 1 100 200 300 400 500
real 0.259s 24.150s 52.903s 1m18.516s 1m47.510s 2m22.131s
user 0.008s 0.812s 1.624s 2.296s 3.020s 3.996s
sys 0.024s 1.168s 2.248s 3.548s 4.748s 5.960s
Cenário 5 1 100 200 300 400 500
real 1.069s 23.822s 48.162s 1m12.238s 1m38.325s 2m8.951s
user 0.008s 0.752s 1.500s 2.416s 3.312s 3.992s
sys 0.024s 1.240s 2.424s 3.380s 4.736s 5.932s
Engenharia e Administração de Sistemas de Banco de Dados
Faculdade de Tecnologia / Universidade Estadual de Campinas
Pg. 8
balanceador de carga entre o cliente e o SGDB e
armazenamento compartilhado para quantidades acima de 100
requisições é o que tem o pior desempenho utilizando o
usuário real. Já entre os ambientes mais rápidos, o cenário 1,
que utiliza cliente, SGDB e armazenamento local, para
quantidade de 1 a 200 requisições é o mais eficiente, entre 300
a 400 requisições o cenário 2, utilizando cliente em rede
diferente e o SGDB e armazenamento local é o mais veloz e o
cenário 1 volta a ser o mais rápido para quantidades de
requisições maiores do que 500 entre todos os ambientes com
o usuário user.
VIII. CONCLUSÃO
Com a tendência das tecnologias de computação paralela, os
pesquisadores e as organizações estão a todo tempo em busca
de novas soluções para os problemas do dia a dia. Assim como
as virtualizações que surgiram há mais de 50 anos, e ajudam
intensamente nas soluções atuais com melhores
funcionalidades e maior eficiência. As plataformas de
computação distribuída possuem um custo relativamente baixo
e performances extremamente altas, o que leva ao interesse de
toda comunidade científica e pessoas do mundo de negócios a
investirem bastante nessas tecnologias. Com os modelos de
computação paralelos utilizados hoje em dia, os grids, cluster
e o mais atual cloud estão surgindo vários programas mundiais
de pesquisas, principalmente focado em cura de doenças,
como HIV, e na busca de vida em outros planetas, utilizando
computadores dispersos em todo o planeta através do
processamento paralelo.
Para analisar performances de processamento paralelos,
especificamente da arquitetura de cluster de computadores, foi
montando um ambiente isolado para realização de testes, de
um servidor web. Foram montados 5 cenários, com conexão
local entre cliente, SGDB e armazenamento; conexão remota
do cliente com o SGDB; conexão remota com o SGDB e
armazenamento compartilhado; outro ambiente utilizando um
balanceador de carga entre o cliente e o SGDB; e por ultimo
um ambiente com cluster de balanceamento de carga com três
nós de computação. Com os testes foi possível observar que
para a maioria das quantidades de requisições (poucas ou
grandes) o ambiente com conexão e armazenamento local
foram os mais eficientes, enquanto que para poucas
requisições o cenário com o cluster foi o menos eficiente.
Porém, ao utilizar grandes quantidades de requisições, o
ambiente com cluster de balanceamento de carga obteve
resultados bastante satisfatórios.
Como o principal objetivo do processamento paralelo é
receber e processar milhares de requisições por segundo, a
diferença de performance entre computadores convencionais
se torna cada vez maior com o aumento da requisições.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] O que é virtualização e o que ela pode fazer pela minha empresa?
http://www.hp.com/latam/br/pyme/solucoes/apr_solucoes_01.html
acessado em junho de 2013.
[2] VMware, Conceitos de virtualização.
http://www.vmware.com/br/virtualization/virtualization-
basics/history.html acessado em junho de 2013.
[3] VirtualBox. Welcome to VirtualBox. http://www.virtualbox.org/,
acessado em junho de 2013.
[4] Tecnicas de Virtualização e Autoconfiguração para o Projetos de
Redes.
http://www.gta.ufrj.br/ftp/gta/TechReports/Natalia11/natalia11.pdf
acessado em junho de 2013.
[5] Introdução à Virtualização, http://ricardoconzatti.com/blog acessado em
junho de 2013.
[6] Grid Computing Info Centre, http://www.gridcomputing.com/ acessado
em junho de 2013.
[7] Grades Computcionais,
http://www.gta.ufrj.br/grad/08_1/grades/definicao.html acessado em
junho de 2013.
[8] World Community Grid, http://www.worldcommunitygrid.org/
acessado em junho de 2013.
[9] Grids Computacionais: da Computação de Alto a Serviços Sob
Demanda, http://www.siban.com.br/destaque/16_carta.pdf acessado em
junho de 2013.
[10] Grid Computing, http://projetofirb.blogspot.com.br/ acessado em junho
de 2013.
[11] Cluster Computing , http://www.ccgrid.org/ acessado em junho de 2013
[12] Cluster: Computação de Alto Desempenho,
http://www.ic.unicamp.br/~ducatte/mo401/1s2010/T2/107077-t2.pdf
acessado em junho de 2013.
[13] http://noticias.seuhistory.com/china-supera-estados-unidos-com-o-
supercomputador-mais-potente-da-historia#sthash.sPT75Qke.dpuf
acessado em junho de 2013.
[14] O que é cloud computing (computação nas nuvens)?
http://www.infowester.com/cloudcomputing.php acessado em junho de
2013.
[15] Google Cloud Plataform, https://cloud.google.com/ acessado em junho
de 2013.

Más contenido relacionado

La actualidad más candente

Apresentação - Cloud Computing
Apresentação - Cloud ComputingApresentação - Cloud Computing
Apresentação - Cloud ComputingUniCloud
 
Apresentação IC - UNICAMP - Computação Distribuída - Cloud Computing
Apresentação IC - UNICAMP - Computação Distribuída - Cloud ComputingApresentação IC - UNICAMP - Computação Distribuída - Cloud Computing
Apresentação IC - UNICAMP - Computação Distribuída - Cloud Computingrcdbarros
 
Apresentação cloud computing senac
Apresentação cloud computing senacApresentação cloud computing senac
Apresentação cloud computing senacfrank encarnacão
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisAdriano Teixeira de Souza
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambguest34ed8ec
 
Cloud Computing: uma abordagem objetiva sobre o novo ambiente computacional
Cloud Computing: uma abordagem objetiva sobre o novo ambiente computacionalCloud Computing: uma abordagem objetiva sobre o novo ambiente computacional
Cloud Computing: uma abordagem objetiva sobre o novo ambiente computacionalJosé Morelli Neto
 
Cloud computing - Apresentação
Cloud computing - ApresentaçãoCloud computing - Apresentação
Cloud computing - ApresentaçãoAna Paula Novello
 
Curso Virtualizacao Profissional com Xen em Sao Paulo
Curso Virtualizacao Profissional com Xen em Sao PauloCurso Virtualizacao Profissional com Xen em Sao Paulo
Curso Virtualizacao Profissional com Xen em Sao PauloGrupo Treinar
 
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...Marcelo Dieder
 

La actualidad más candente (20)

Apresentação - Cloud Computing
Apresentação - Cloud ComputingApresentação - Cloud Computing
Apresentação - Cloud Computing
 
Apresentação IC - UNICAMP - Computação Distribuída - Cloud Computing
Apresentação IC - UNICAMP - Computação Distribuída - Cloud ComputingApresentação IC - UNICAMP - Computação Distribuída - Cloud Computing
Apresentação IC - UNICAMP - Computação Distribuída - Cloud Computing
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Apresentação cloud computing senac
Apresentação cloud computing senacApresentação cloud computing senac
Apresentação cloud computing senac
 
Computação em nuvem
Computação em nuvemComputação em nuvem
Computação em nuvem
 
Prazer, computação em nuvem
Prazer, computação em nuvemPrazer, computação em nuvem
Prazer, computação em nuvem
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Computação em nuvens
Computação em nuvensComputação em nuvens
Computação em nuvens
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcamb
 
Cloud Computing: uma abordagem objetiva sobre o novo ambiente computacional
Cloud Computing: uma abordagem objetiva sobre o novo ambiente computacionalCloud Computing: uma abordagem objetiva sobre o novo ambiente computacional
Cloud Computing: uma abordagem objetiva sobre o novo ambiente computacional
 
Computação na nuvem
Computação na nuvemComputação na nuvem
Computação na nuvem
 
Pres clusterpdf
Pres clusterpdfPres clusterpdf
Pres clusterpdf
 
Cloud computing - Apresentação
Cloud computing - ApresentaçãoCloud computing - Apresentação
Cloud computing - Apresentação
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Curso Virtualizacao Profissional com Xen em Sao Paulo
Curso Virtualizacao Profissional com Xen em Sao PauloCurso Virtualizacao Profissional com Xen em Sao Paulo
Curso Virtualizacao Profissional com Xen em Sao Paulo
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Computação em nuvem
Computação em nuvemComputação em nuvem
Computação em nuvem
 
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
Computação nas Nuvens, Virtualização e Software Livre - Como eles caminham ju...
 

Destacado

TimesTen In-Memory Database
TimesTen In-Memory DatabaseTimesTen In-Memory Database
TimesTen In-Memory DatabaseAndre Danelon
 
Fimca fundamentos e sistemas de informação gerenciais
Fimca   fundamentos e sistemas de informação gerenciaisFimca   fundamentos e sistemas de informação gerenciais
Fimca fundamentos e sistemas de informação gerenciaisMarcelo Augusto M. Barbosa
 
Usabilidade de Interfaces Gráficas na Web apresentação
Usabilidade de Interfaces Gráficas na Web   apresentaçãoUsabilidade de Interfaces Gráficas na Web   apresentação
Usabilidade de Interfaces Gráficas na Web apresentaçãoBruno Ribeiro
 
Aulas de Sistemas de Informações Gerenciais
Aulas de Sistemas de Informações GerenciaisAulas de Sistemas de Informações Gerenciais
Aulas de Sistemas de Informações GerenciaisWilliam Rodrigues
 
Estudo de Usabilidade na interface do Ministério da Ciência e Tecnologia
Estudo de Usabilidade na interface do Ministério da Ciência e Tecnologia Estudo de Usabilidade na interface do Ministério da Ciência e Tecnologia
Estudo de Usabilidade na interface do Ministério da Ciência e Tecnologia Sergio Luis dos Santos Lima
 
Apostila principios-de-sistemas-de-informacao
Apostila principios-de-sistemas-de-informacaoApostila principios-de-sistemas-de-informacao
Apostila principios-de-sistemas-de-informacaoMarcia Abrahim
 
Sistemas de informações gerenciais para supply chain parte 1
Sistemas de informações gerenciais para supply chain   parte 1Sistemas de informações gerenciais para supply chain   parte 1
Sistemas de informações gerenciais para supply chain parte 1Rene Birocchi
 
Usando JavaFx No Desenvolvimento De Jogos
Usando JavaFx No Desenvolvimento De JogosUsando JavaFx No Desenvolvimento De Jogos
Usando JavaFx No Desenvolvimento De JogosHamilton Lima
 
Construindo um Servidor Web com GO
Construindo um Servidor Web com GOConstruindo um Servidor Web com GO
Construindo um Servidor Web com GOBeto Muniz
 
Aula Interface Gráfica do Usuário
Aula Interface Gráfica do UsuárioAula Interface Gráfica do Usuário
Aula Interface Gráfica do UsuárioFabio Moura Pereira
 
MÉTODOS DE AVALIAÇÃO DA USABILIDADE
MÉTODOS DE AVALIAÇÃO DA USABILIDADEMÉTODOS DE AVALIAÇÃO DA USABILIDADE
MÉTODOS DE AVALIAÇÃO DA USABILIDADEAndrea Dalforno
 
Redes servidor web
Redes servidor webRedes servidor web
Redes servidor webMauro Duarte
 

Destacado (20)

NoSQL
NoSQLNoSQL
NoSQL
 
TimesTen In-Memory Database
TimesTen In-Memory DatabaseTimesTen In-Memory Database
TimesTen In-Memory Database
 
Palestra iv-ensol-nosql
Palestra iv-ensol-nosqlPalestra iv-ensol-nosql
Palestra iv-ensol-nosql
 
Nosql intro
Nosql introNosql intro
Nosql intro
 
Fimca fundamentos e sistemas de informação gerenciais
Fimca   fundamentos e sistemas de informação gerenciaisFimca   fundamentos e sistemas de informação gerenciais
Fimca fundamentos e sistemas de informação gerenciais
 
Usabilidade de Interfaces Gráficas na Web apresentação
Usabilidade de Interfaces Gráficas na Web   apresentaçãoUsabilidade de Interfaces Gráficas na Web   apresentação
Usabilidade de Interfaces Gráficas na Web apresentação
 
Aulas de Sistemas de Informações Gerenciais
Aulas de Sistemas de Informações GerenciaisAulas de Sistemas de Informações Gerenciais
Aulas de Sistemas de Informações Gerenciais
 
Estudo de Usabilidade na interface do Ministério da Ciência e Tecnologia
Estudo de Usabilidade na interface do Ministério da Ciência e Tecnologia Estudo de Usabilidade na interface do Ministério da Ciência e Tecnologia
Estudo de Usabilidade na interface do Ministério da Ciência e Tecnologia
 
Apostila principios-de-sistemas-de-informacao
Apostila principios-de-sistemas-de-informacaoApostila principios-de-sistemas-de-informacao
Apostila principios-de-sistemas-de-informacao
 
Sistemas de informações gerenciais para supply chain parte 1
Sistemas de informações gerenciais para supply chain   parte 1Sistemas de informações gerenciais para supply chain   parte 1
Sistemas de informações gerenciais para supply chain parte 1
 
Usando JavaFx No Desenvolvimento De Jogos
Usando JavaFx No Desenvolvimento De JogosUsando JavaFx No Desenvolvimento De Jogos
Usando JavaFx No Desenvolvimento De Jogos
 
Cidadão Participativo
Cidadão ParticipativoCidadão Participativo
Cidadão Participativo
 
Sig unidade i
Sig   unidade iSig   unidade i
Sig unidade i
 
Construindo um Servidor Web com GO
Construindo um Servidor Web com GOConstruindo um Servidor Web com GO
Construindo um Servidor Web com GO
 
Sistemas de informações gerenciais
Sistemas de informações gerenciaisSistemas de informações gerenciais
Sistemas de informações gerenciais
 
Como funciona um servidor web
Como funciona um servidor webComo funciona um servidor web
Como funciona um servidor web
 
Aula Interface Gráfica do Usuário
Aula Interface Gráfica do UsuárioAula Interface Gráfica do Usuário
Aula Interface Gráfica do Usuário
 
MÉTODOS DE AVALIAÇÃO DA USABILIDADE
MÉTODOS DE AVALIAÇÃO DA USABILIDADEMÉTODOS DE AVALIAÇÃO DA USABILIDADE
MÉTODOS DE AVALIAÇÃO DA USABILIDADE
 
Redes servidor web
Redes servidor webRedes servidor web
Redes servidor web
 
Linux - Servidor Web Apache
Linux - Servidor Web ApacheLinux - Servidor Web Apache
Linux - Servidor Web Apache
 

Similar a Desempenho de um Servidor Web em Ambientes de Computação Isolados

Similar a Desempenho de um Servidor Web em Ambientes de Computação Isolados (20)

Aula01
Aula01Aula01
Aula01
 
Virtualização Teste
Virtualização TesteVirtualização Teste
Virtualização Teste
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Flisol 2015
Flisol 2015 Flisol 2015
Flisol 2015
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Virtualização: Um comparativo entre Xen e VMware
Virtualização: Um comparativo entre Xen e VMware Virtualização: Um comparativo entre Xen e VMware
Virtualização: Um comparativo entre Xen e VMware
 
Virtualizacao e o uso de Software Livre
Virtualizacao e o uso de Software LivreVirtualizacao e o uso de Software Livre
Virtualizacao e o uso de Software Livre
 
Computação em Nuvem: conceitos básicos
Computação em Nuvem: conceitos básicosComputação em Nuvem: conceitos básicos
Computação em Nuvem: conceitos básicos
 
Artigo
ArtigoArtigo
Artigo
 
Arquitetura paralela
Arquitetura paralelaArquitetura paralela
Arquitetura paralela
 
Aula01
Aula01Aula01
Aula01
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Apresentação HyperCloud GT8
Apresentação HyperCloud GT8Apresentação HyperCloud GT8
Apresentação HyperCloud GT8
 
Computação em Nuvem
Computação em Nuvem  Computação em Nuvem
Computação em Nuvem
 
Arquitetura de Computadores e Sistemas Operacionais Etapa 08.pdf
Arquitetura de Computadores e Sistemas Operacionais Etapa 08.pdfArquitetura de Computadores e Sistemas Operacionais Etapa 08.pdf
Arquitetura de Computadores e Sistemas Operacionais Etapa 08.pdf
 
[Workshop] Azure Fundamentals
[Workshop] Azure Fundamentals[Workshop] Azure Fundamentals
[Workshop] Azure Fundamentals
 
Computação em nuvem
Computação em nuvemComputação em nuvem
Computação em nuvem
 
Escalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosEscalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizados
 
Joaopinheiro
JoaopinheiroJoaopinheiro
Joaopinheiro
 

Desempenho de um Servidor Web em Ambientes de Computação Isolados

  • 1. Engenharia e Administração de Sistemas de Banco de Dados Faculdade de Tecnologia / Universidade Estadual de Campinas Pg. 1 I. INTRODUÇÃO virtualização foi implementada há quase 50 anos pela IBM como forma de criar partições lógicas dos computadores mainframe em máquinas virtuais separadas que permitiam executar várias tarefas, ou seja, vários aplicativos e processos ao mesmo tempo. Como os mainframes eram recursos caros naquela época, eram projetados para o particionamento como forma de aproveitar totalmente o investimento. Com o passar do tempo, a virtualização evoluiu e chegou ao mercado com força total, representando inovação e proporcionando recursos altamente eficientes para as empresas e organizações. [5] A necessidade de virtualizar um sistema operacional surge quando se percebe que a aplicação que está em funcionamento no servidor consome apenas uma pequena parte dos recursos de hardware existentes, ou seja, haveria sobra e conseqüentemente, desperdício. Desta forma, um melhor aproveitamento seria utilizar a virtualização para compartilhar o hardware com diversas outras máquinas virtuais, e assim extrair um melhor proveito dos recursos do servidor. Na década de 90, 40 anos depois do surgimento da virtualização, uma nova infraestrutura de computação distribuída foi proposta para auxiliar o desenvolvimento científico e atividades de pesquisa. Vários modelos desta infraestrutura foram especificados, dentre elas, a Computação em Grade, em analogia às redes elétricas, em que se propõe a apresentar ao usuário como um computador virtual, mascarando toda a infraestrutura distribuída. Seu objetivo era unir tecnologias heterogêneas e geograficamente dispersas. [10] Pesquisadores da área acreditam que a tecnologia de grades computacionais seja a evolução dos sistemas computacionais atuais, não sendo apenas um fenômeno tecnológico, mas também social, pois num futuro próximo reuniria recursos e pessoas de várias localidades, com várias atividades diferentes numa mesma infraestrutura, possibilitando sua interação de uma forma antes impossível. [10] A tecnologia em grade vem sendo difundida e aperfeiçoada devido ao grande esforço do Global Grid Forum (GGF), uma comunidade formada por entidades do meio científico e corporativo que criam e padronizam tecnologias para ambientes em grade. A IBM também deu inicio aos primeiros clusters na década de 60, quando interligou seus mainframes em rede afim de que pudesse ter assim um processamento paralelo. Os clusters de computadores ganharam ainda mais força quando as três tendências convergiram nos anos 1980, microprocessadores de alta performance, redes de alta velocidade, e ferramentas padronizadas para computação distribuída de alto desempenho, juntamente com a crescente necessidade de alto poder de processamento para aplicações científicas e comerciais, unida ao alto custo e a baixa acessibilidade dos tradicionais supercomputadores. Assim como computação em grade, o termo nuvem vem da idéia de abstração. Neste sentido, a nuvem representa uma rede de algum tipo cuja estrutura não precisa ser conhecida para o usuário. No Brasil a tecnologia de computação em nuvem é muito recente, mas está se tornando madura muito rapidamente. Empresas de pequeno, médio e grande porte estão adotando a tecnologia gradativamente, sendo que o serviço que começou a ser oferecido comercialmente em 2008. Mas foi a partir de 2009 que a tecnologia evoluiu consideravelmente, incorporando funcionalidades e utilizando diversas novas tecnologias. A principal proposta do Cloud Computing - ou computação na nuvem - era a de que ninguém mais precisaria instalar programa algum em seu computador para realizar desde tarefas básicas, como mexer com editores de texto ou planilhas até trabalhos mais complexos, como edição de imagens e vídeos, pois tudo seria feito pela internet. II. OBJETIVO Verificar questões relacionadas ao desempenho de um servidor web quando executado em um ambiente de computação isolado, usando-se a rede para a comunicação cliente e servidor, usando-se um sistema de arquivo compartilhado para armazenamento das páginas e um cluster de computadores para prover o referido serviço. André Danelon e Rodrigo Figueiredo Desempenho de um Servidor Web em Ambientes de Computação Isolados A
  • 2. Engenharia e Administração de Sistemas de Banco de Dados Faculdade de Tecnologia / Universidade Estadual de Campinas Pg. 2 III. VIRTUALIZAÇÃO A virtualização foi desenvolvida na década de 60 para utilizações em computadores de grande porte, visando obter uma melhor utilização através da criação de partições lógicas. Atualmente, os PC’s enfrentam os mesmos problemas de subutilização do hardware que os mainframes enfrentaram nos anos 60. Devido à isso, nos anos 90 foi criada a virtualização para arquitetura x86.[2] Uma definição simples seria que virtualização é o processo de executar vários sistemas operacionais em um único equipamento físico. Uma máquina virtual é um ambiente operacional completo que se comporta como se fosse um computador independente. Com a virtualização, um servidor pode manter vários sistemas operacionais em uso.[1] Uma máquina virtual se comporta exatamente como um computador físico, pois possui CPU, memória RAM, disco rígido e placa de interface de rede. Entretanto, a máquina virtual é composta inteiramente de software, ou seja, não contém componentes de hardware. As máquinas virtuais possuem algumas características e também vantagens em relação ao hardware físico. São elas: • Compatibilidade: são compatíveis com todos os computadores x86 padrão. • Isolamento: são isoladas umas das outras, como se estivessem fisicamente separadas. • Encapsulamento: encapsulam um ambiente de computação completo. • Independência de hardware: são executadas independentemente do hardware subjacente. A virtualização de computadores é amplamente utilizada para a consolidação de servidores em data centers, principalmente para reduzir custos. O principal elemento na virtualização de computadores é o hipervisor, conhecido como monitor de máquinas virtuais (VMM). O hipervisor aloca recursos do sistema para cada ambiente virtual, podendo ser instalado como uma aplicação, ou como parte do sistema operacional. A função do hipervisor é emular dispositivos, instruções, entre outros, fazendo o ambiente virtual acreditar que tem acesso exclusivo sem compartilhamento com outras maquinas virtuais.[4] A virtualização pode ser feita em quatro níveis: • Abstração da Instruction Set Architecture (ISA): Baseada em emulação, esse tipo de virtualização é implementada pela execução do sistema virtual, através de um mapeamento das instruções para o conjunto de instruções nativas. Uma consequência do uso desse tipo de virtualização é a perda de desempenho na execução das tarefas do sistema virtual. • Camada de abstração de hardware (Hardware Abstraction Layer - HAL): O hipervisor da máquina virtual simula a arquitetura completa da máquina para o sistema virtual. O sistema virtual acredita estar sendo executado diretamente sobre um hardware físico, sem perceber que é virtualizado. Esse nível de virtualização é o mais popular. Alguns sistemas desse nível são VMware, Virtual PC e VirtualBox. • Nível de sistema operacional: Nesse tipo de virtualização, conjuntos de processos são executados de forma isolada sobre o mesmo sistema operacional. A cada ambiente virtual é possível atribuir uma quantidade dos recursos físicos e programar qualquer tipo de aplicação ou serviço. A restrição principal desse tipo de virtualização é que todos os ambientes devem utilizar o mesmo sistema operacional. • Nível de Aplicação: A virtualização no nível de aplicação consiste na abstração da camada de execução. Essa solução é utilizada para fazer com que um determinado software funcione sobre qualquer sistema operacional. O principal exemplo desse tipo de virtualização é o Java Virtual Machine (JVM). Com a virtualização pode-se criar uma infraestrutura virtual, permitindo compartilhar os recursos físicos de várias máquinas entre ela. É possível criar uma infraestrutura virtual inteira dimensionando centenas de computadores físicos e dispositivos de armazenamento interconectados com um sistema de virtualização. [2] A infraestrutura virtual consiste nos seguintes componentes: Hipervisors para virtualização completa de cada computador x86; serviços de infraestrutura virtual, como gerenciamento de recursos para otimizar os recursos disponíveis entre as máquinas virtuais; soluções de automação que fornecem recursos especiais para otimizar um processo de TI específico, por exemplo recuperação de desastres. Segue uma representação gráfica de um ambiente utilizando uma infraestrutura virtual. Figura 1. Infraestrutura Virtual
  • 3. Engenharia e Administração de Sistemas de Banco de Dados Faculdade de Tecnologia / Universidade Estadual de Campinas Pg. 3 IV. MODELOS DE COMPUTAÇÃO Grids Grids Computacionais surgiram na década de 90 da comunidade de processamento de alto desempenho (PDA), com a promessa de viabilizar a execução de aplicações paralelas em recursos geograficamente dispersos. A origem do termo Grid foi criada com base no sistema da rede elétrica (The Electric Grid), onde se usa a eletricidade sem se ter o conhecimento de onde ela foi gerada, e de forma transparente para os usuários. [8] A necessidade da criação de uma nova plataforma computacional era possibilitar através da aglomeração de recursos dispersos a execução de aplicações paralelas em uma escala simplesmente impossível em um único supercomputador. As grades computacionais podem ser definidas de dois modos. Primeiro como sendo um modo de compartilhamento de recursos e resolução de problemas em organizações virtuais dinâmicas, e o segundo como sistemas que dão suporte a criação de aplicações paralelas que agregam e fornecem recursos heterogêneos distribuídos geograficamente de forma econômica e consistente. O grid é uma forma de computação distribuída, mas ela possui características distinta sendo mais complexa do que as demais plataformas distribuídas. [8] Aspectos que evidenciam esta distribuição e complexidade são: • Heterogeneidade: Os componentes que formam a infraestrutura tendem ser extremamente heterogêneos, ou seja, deverá lidar com recursos de várias gerações, softwares de várias versões, instrumentos e serviços dos mais variados tipos. • Alta dispersão geográfica: Essa característica se refere a escala que um grid pode atingir. Grids podem ter escala global, agregando serviços localizados em várias partes do planeta. • Compartilhamento: Em contraste com soluções space-shared, um grid não pode ser dedicado a uma aplicação de forma exclusiva por um determinado período de tempo. Isso tem impacto no desenvolvimento de aplicações que executam sobre a infraestrutura de um grid Computacional. • Múltiplos domínios administrativos: Grids congregam recursos de varias instituições. Sendo assim, alem da heterogeneidade mencionada anteriormente, é possível também a existência de varias políticas de acesso e uso dos serviços, de acordo com as diretrizes de cada domínio que faz parte do grid. • Controle distribuído: Tipicamente não ha uma única aplicação/usuário que tenha poder sobre todo o grid. Isso é um reflexo da dispersão dos componentes do grid, pois cada instituição pode implementar sua política em seus recursos locais, mas não interfere diretamente na implementação de políticas no acesso aos serviços de outras instituições participantes. Um grid computer funciona como um grande computador virtual onde as aplicações são executadas. Esse computador virtual tem uma forte integração de servidores, discos e outros recursos capazes de compartilhar recursos de forma rápida e de fácil gerenciamento. Um exemplo de projeto que utiliza o processamento distribuído através de grid é o projeto SETI@home (http://setiathome.ssl.berkeley.edu), que é uma continuação do projeto da NASA em busca de inteligência extraterrestre. O Seti@home usa um software que pode ser baixado da Internet, em que um microcomputador pode analisar sinais de rádio telescópio. Atualmente, existem 1,6 milhões de microcomputadores espalhados em 224 países que contribuem com o processamento, criando um computador virtual com uma média de 10 trilhões de operações por segundo. Cluster Assim como um Grid, Cluster é um sistema distribuído de computadores independentes e interligados, cujo objetivo é suprir a necessidade de um grande poder computacional com um conjunto de computadores de forma transparente ao usuário.[10] Os clusters podem ser centralizados, quando estão em um mesmo local, com máquinas homogêneas montadas em racks, ou descentralizadas, em que os computadores estão espalhados conectados via LAN e são máquinas heterogêneas com um conjunto completo de periférico. Figura 2. Arquiteruta Generica de um Cluster Um cluster é composto por nós e cada nó possui uma função. O nó de controle, de usuário, de computação, o nó de armazenamento, o nó de instalação e o nó de gerenciamento. A figura 3 detalha a funcionalidade de cada um desses nós.
  • 4. Engenharia e Administração de Sistemas de Banco de Dados Faculdade de Tecnologia / Universidade Estadual de Campinas Pg. 4 Figura 3. Funções dos Nós em um Cluster Alguns modelos de cluster são:  Cluster de Alto Desempenho: Permite que ocorra uma grande carga de processamento com um volume alto de gigaflops em computadores comuns, utilizando sistema operacional gratuito, o que diminui seu custo.  Cluster de Alta Disponibilidade: Seus sistemas conseguem permanecer ativos por um longo período de tempo e em condição de uso. Sendo assim, podemos dizer que eles nunca param seu funcionamento, e além disso, conseguem detectar erros se protegendo de possíveis falhas.  Cluster para Balanceamento de Carga: Esse tipo de cluster tem como função controlar a distribuição equilibrada do processamento. Requer um monitoramento constante na sua comunicação e em seus mecanismos de redundância, pois se ocorrer alguma falha haverá uma interrupção no seu funcionamento. Uma das razões para se construir e utilizar um cluster ou uma combinação de cluster é quando o conteúdo armazenado é extremamente crítico e não pode ficar inacessível, ou quando os serviços precisam estar disponíveis/processados o mais rápido possível. Organizações e pesquisadores precisam incrementar sua escalabilidade, gerenciamento de recursos, disponibilidade ou processamento a um nível supercomputacional, com um baixo custo. Por exemplo, sites de comércio eletrônico freqüentemente necessitam de alta de disponibilidade e balanceamento de carga de forma escalável. Atualmente, o cluster com maior capacidade de processamento da historia foi desenvolvido pelos Cientistas da Universidade Nacional de Tecnologia e Defesa (UNTD) da China, este supercomputador duplica as capacidades do Titan, o supercomputador norte-americano, que possui 17,6 petaflops por segundo. O Tianhe-2 ou “Via- Láctea” é capaz de processar 30,7 petaflops por segundo, o equivalente a um quatrilhão de cálculos por segundo. Este será usado para processamento de dados de uma imensidade de informações, simulação de cataclismos e desastres naturais, no âmbito da segurança nacional. [11] Figura 4. Supercomputador Tianhe-2 Cloud Cloud computing - ou computação nas nuvens - é, essencialmente a ideia de utilizarmos, em qualquer lugar e independente da plataforma, as mais variadas aplicações por meio da Internet, com a mesma facilidade de tê-las instaladas em nossos próprios computadores. O termo nuvem vem da idéia de abstração, neste sentido, a nuvem representa uma rede de algum tipo cuja estrutura não precisa ser conhecida para o usuário. [12] Para computação na nuvem pode-se considerar três modelos:  Nuvem Pública: Pode-se dizer basicamente que a computação nas nuvens é um sistema composto de duas partes, o provedor da solução e o utilizador, que pode ser uma pessoa, uma empresa ou qualquer outra organização. Um exemplo desse esquema é o Google Docs, em que o usuário só precisa acessar o site para ter acesso a editor de textos, fazer planilhas e elaborar slides.  Nuvem Privada: Para o usuário uma nuvem privada se comporta da mesma maneira que uma nuvem pública, porém, os equipamentos e sistemas utilizados para constituir a nuvem estão dentro da infraestrutura da própria corporação, ou seja a organização faz uso de uma nuvem particular, construída e mantida dentro de seus estrutura. Essa nuvem pode seguir todas as regras da empresa respeitando as políticas, objetivos e outros aspectos referente a atividade da empresa. Nuvens privadas são mais comuns em grandes corporações como Microsoft, IBM e HP.  Nuvem Híbrida: Para ter um controle sobre os custos e maior flexibilização de operações as organizações podem optar também pelas nuvens híbridas. Nelas, determinadas aplicações são direcionadas às nuvens públicas, enquanto que outras, normalmente mais críticas, permanecem sob a responsabilidade de sua nuvem privada. Não é preciso utilizar apenas um tipo de nuvem quando se quer implementar um ambiente cloud. As nuvens públicas e privadas não são modelos incompatíveis entre si, ou seja, pode-se aproveitar o melhor dos dois. Cloud computing está intimamente ligada ao conceito de Software as a Service (SaaS), ou Software como Serviço. Quer dizer que, é uma forma de trabalho onde o software é oferecido como serviço. Assim, o usuário ou empresa não
  • 5. Engenharia e Administração de Sistemas de Banco de Dados Faculdade de Tecnologia / Universidade Estadual de Campinas Pg. 5 precisa adquirir licenças de uso ou mesmo comprar computadores ou servidores para executá-lo. Com este conceito, paga-se um valor periódico como se fosse uma assinatura somente pelos recursos utilizados, e/ou pelo tempo de uso. Além dessas vantagens, o hardware, instalação, atualização, manutenção, entre outros, são de responsabilidades do fornecedor do serviço. O usuário/empresa só precisa se preocupar com o acesso ao serviço, no caso, uma conexão com à Internet ou, se necessário, com a simples instalação de algum recurso mínimo, como um plugin no browser de suas máquinas. Atualmente têm-se os conceitos do SaaS utilizados por algumas companhias para diferenciar os seus serviços. São eles:  Platform as a Service (PaaS): É um tipo de solução mais amplo para determinadas aplicações, incluindo todos os recursos necessários à operação, como armazenamento, banco de dados, escalabilidade, suporte a linguagens de programação, segurança e etc.  Database as a Service (DaaS): Fornece serviços para armazenamento e acesso de volumes de dados. A vantagem é que o detentor da aplicação conta com maior flexibilidade para expandir o banco de dados, compartilhar as informações com outros sistemas, facilitar o acesso remoto por usuários autorizados, entre outros.  Infrastructure as a Service (IaaS): Similar ao PaaS, mas aqui o foco é a estrutura de hardware ou de máquinas virtuais, com o usuário tendo inclusive acesso a recursos do sistema operacional  Testing as a Service (TaaS): Oferece um ambiente apropriado para que o usuário possa testar aplicações e sistemas de maneira remota, simulando o comportamento destes em nível de execução. Os termos cloud computing e computação nas nuvens são relativamente recentes, mas já existem vários serviços oferecidos como por exemplo o Google Apps, Amazon, Panda Cloud Antivirus e iCloud. V. AMBIENTE DESENVOLVIDO Os testes foram realizados em ambientes virtualizados. O software de virtualização utilizado foi o VirtualBox, da empresa Oracle, o qual é Open Source. O VirtualBox permite a instalação e utilização de um sistema operacional dentro de outro. Para o sistema operacional, a escolha foi o Linux, com sua distribuição SLAX (Slackware). O SLAX é um Live CD, podendo ser executado sem instalação no disco rígido - ou mesmo em um computador sem disco rígido. A utilização do modo texto do SLAX implica num menor consumo de memória RAM, evitando assim interferências no resultado dos testes. Primeiro foi criada uma máquina base virtualizada, a qual serviu para a clonagem de outras cinco máquinas virtuais: - Máquina NP01: nó de processamento que irá receber uma requisição de um usuário, e irá se comunicar com o nó de armazenamento pelo balanceamento de um dos três nós de comunicação. - Máquina NC01: primeiro nó de comunicação que irá compor o cluster, para acesso balanceado ao nó de armazenamento. - Máquina NC02: segundo nó de comunicação que irá compor o cluster, para acesso balanceado ao nó de armazenamento. - Máquina NC03: terceiro nó de comunicação que irá compor o cluster, para acesso balanceado ao nó de armazenamento. - Máquina NA01: nó de armazenamento dos dados. O NIS (Network Information Service), o qual é um serviço desenvolvido pela SUN com a finalidade de disseminar informações de uma rede, foi utilizado para comunicação do cluster. Ele foi configurado na máquina NA01. Para a mudança do endereço de origem das conexões para outro destino, foi configurado o NAT Postrouting na máquina NP01. A máquina NP01, responsável pelo balanceamento, o faz através do IPVS. O IPVS ou Linux Virtual Server (LVS) é uma solução de balanceamento de carga avançada para sistemas Linux. É um projeto Open Source começado por Wensong Zhang em maio de 1998. A missão do projeto é construir um servidor de alto desempenho e altamente disponível para Linux usando a tecnologia de clustering, que fornece altos níveis de escalabilidade, confiabilidade e usabilidade. Em cada um dos 3 nós foram utilizadas 3 aplicações para os testes de desempenho do cluster: - MYSQL: sistema de gerenciamento de banco de dados (SGBD) Open Source, que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo. - SSH (Secure Shell): aplicação e protocolo de rede para conexão e execução remota de comandos. - Apache HTTP Server: servidor WEB compatível com o protocolo HTTP.
  • 6. Engenharia e Administração de Sistemas de Banco de Dados Faculdade de Tecnologia / Universidade Estadual de Campinas Pg. 6 VI. TESTES Os testes foram realizados em maquinas virtualizadas em ambientes de computação isolados. Os cenários montados estão descritos abaixo: 1º Cenário: Definindo um padrão de comportamento para a interação entre o cliente e o SGBD. Execução de testes - Conexão Local com o SGDB. 2º. Cenário: Observando o impacto que a rede de comunicação proporciona no desempenho quando da interação cliente e SGBD, localizados em equipamentos distintos. Execução de testes - Conexão Remota com o SGDB (rede). 3º. Cenário: Observando o impacto causado no desempenho quando o SGBD deve manipular tabelas que estejam armazenadas em sistemas de arquivos compartilhados. Execução de testes - Conexão Remota com o SGDB (rede). 4º. Cenário: Observando o impacto causado no desempenho quando se utiliza um balanceador de carga atuando como intermediário entre o cliente e o SGBD. Execução de testes - Conexão Remota com o SGDB (cluster). 5º. Cenário: Observando o impacto causado no desempenho quando se utiliza um SGBD em um cluster de balanceamento de carga. Execução de testes - Conexão Remota com o SGDB (cluster).
  • 7. Engenharia e Administração de Sistemas de Banco de Dados Faculdade de Tecnologia / Universidade Estadual de Campinas Pg. 7 VII. RESULTADOS Os resultados obtidos através dos testes foram bastante satisfatórios e significativos para definição de várias métricas. Abaixo seguem duas tabelas comparando os resultados encontrados. Tabela 1. Comparação entre usuário x quantidade de requisições É possível observar que em todos os cenários testados o tempo de resposta aumenta exponencialmente com o incremento da quantidade de requisições para todos os usuários. Para cada 100 incrementos nos melhores casos o aumento é em média 0,7 segundos, conforme os resultados para o usuário user, e nos piores casos o aumento chega a ser mais de 30 segundos, como mostrado no cenário 4, utilizando um balanceador de carga como intermediário entre o cliente e o SGBD, para o usuário real no incremento de 400 para 500 requisições. Os cenários 1, 2 e 3 possuem tempos muito parecidos, variando qual ambiente é o mais veloz de acordo com a quantidade de requisições e do usuário que está executando. Por exemplo, no cenário 1, que utiliza uma conexão local com o SGDB, para 100 requisições com usuário user obteve 0,616 segundos, já para 300 requisições no cenário 2, utilizando uma conexão remota com o SGDB onde o cliente fica em uma rede distinta do banco de dados, executando com usuário real obteve-se 26,127 segundos e para 500 requisições o cenário 3, que utiliza um armazenamento de tabelas compartilhado, com o cliente, SGDB e armazenamentos em redes distintas, mostrou-se mais eficiente ao executar em 6,008s com o usuário sys. Os cenários 4 e 5 utilizando o usuário real tiveram resultados extremamente lentos. Os testes com mais de 300 requisições o tempo passa de um minuto e para 500 requisições chega a demorar mais de dois minutos. Porém, nesses ambientes entre o usuário sys obtiveram-se os melhores tempos quando as quantidades de requisições são maiores do que 300, conforme exemplo no cenário 5, utilizando um cluster de balanceamento de carga para as requisições feitas no SGBD, com armazenamento em ambiente compartilhado e nós de cliente, balanceamento, computação e armazenamento em redes distintas, para 500 requisições o tempo de execução foi de 5,932 segundos e no cenário 4, em que os nós também estão em redes distintas com um balanceador de carga entre o cliente e o SGDB e armazenamento compartilhado, foi de 5,960s. Abaixo segue outra tabela fazendo uma comparação entre os usuários com os cenários testados pela quantidade de requisições. Cenários x Usuario 1 100 200 300 400 500 1 x Real 0.131s 9.497s 19.366s 19.366s 35.877s 44.359s 2 x Real 0.214s 8.669s 17.406s 17.406s 34.947s 43.760s 3 x Real 0.168s 9.124s 18.672s 18.672s 36.688s 45.921s 4 x Real 0.259s 24.150s 52.903s 52.903s 1m47.510s 2m22.131s 5 x Real 1.069s 23.822s 48.162s 48.162s 1m38.325s 2m8.951s 1 x user 0.000s 0.616s 1.260s 1.960s 2.536s 3.060s 2 x user 0.008s 0.644s 1.240s 1.884s 2.640s 3.156s 3 x user 0.008s 0.764s 1.500s 2.320s 2.952s 3.808s 4 x user 0.008s 0.812s 1.624s 2.296s 3.020s 3.996s 5 x user 0.008s 0.752s 1.500s 2.416s 3.312s 3.992s 1 x sys 0.040s 1.380s 2.936s 3.948s 5.020s 6.392s 2 x sys 0.076s 1.344s 3.080s 4.520s 5.684s 7.456s 3 x sys 0.052s 1.212s 2.808s 3.420s 5.024s 6.008s 4 x sys 0.024s 1.168s 2.248s 3.548s 4.748s 5.960s 5 x sys 0.024s 1.240s 2.424s 3.380s 4.736s 5.932s Tabela 2. Comparação entre cenários x usuários x quantidade de requisições Nesta tabela é possível analisar que o utilizando o usuário real os tempos de execuções foram mais lentos em todos os cenários, e que utilizando o user obtiveram-se os melhores resultados. Comparando os resultados para o mesmo usuário entre os ambientes têm-se entre os mais lentos, os cenários 4 e 5. Assim o cenário 5, utilizando um cluster de balanceamento de carga com os nós em redes distintas é o mais lento para poucas quantidades de requisições, já o cenário 4, com um Cenário 1 1 100 200 300 400 500 real 0.131s 9.497s 19.366s 27.420s 35.877s 44.359s user 0.000s 0.616s 1.260s 1.960s 2.536s 3.060s sys 0.040s 1.380s 2.936s 3.948s 5.020s 6.392s Cenário 2 1 100 200 300 400 500 real 0.214s 8.669s 17.406s 26.127s 34.947s 43.760s user 0.008s 0.644s 1.240s 1.884s 2.640s 3.156s sys 0.076s 1.344s 3.080s 4.520s 5.684s 7.456s Cenário 3 1 100 200 300 400 500 real 0.168s 9.124s 18.672s 27.388s 36.688s 45.921s user 0.008s 0.764s 1.500s 2.320s 2.952s 3.808s sys 0.052s 1.212s 2.808s 3.420s 5.024s 6.008s Cenário 4 1 100 200 300 400 500 real 0.259s 24.150s 52.903s 1m18.516s 1m47.510s 2m22.131s user 0.008s 0.812s 1.624s 2.296s 3.020s 3.996s sys 0.024s 1.168s 2.248s 3.548s 4.748s 5.960s Cenário 5 1 100 200 300 400 500 real 1.069s 23.822s 48.162s 1m12.238s 1m38.325s 2m8.951s user 0.008s 0.752s 1.500s 2.416s 3.312s 3.992s sys 0.024s 1.240s 2.424s 3.380s 4.736s 5.932s
  • 8. Engenharia e Administração de Sistemas de Banco de Dados Faculdade de Tecnologia / Universidade Estadual de Campinas Pg. 8 balanceador de carga entre o cliente e o SGDB e armazenamento compartilhado para quantidades acima de 100 requisições é o que tem o pior desempenho utilizando o usuário real. Já entre os ambientes mais rápidos, o cenário 1, que utiliza cliente, SGDB e armazenamento local, para quantidade de 1 a 200 requisições é o mais eficiente, entre 300 a 400 requisições o cenário 2, utilizando cliente em rede diferente e o SGDB e armazenamento local é o mais veloz e o cenário 1 volta a ser o mais rápido para quantidades de requisições maiores do que 500 entre todos os ambientes com o usuário user. VIII. CONCLUSÃO Com a tendência das tecnologias de computação paralela, os pesquisadores e as organizações estão a todo tempo em busca de novas soluções para os problemas do dia a dia. Assim como as virtualizações que surgiram há mais de 50 anos, e ajudam intensamente nas soluções atuais com melhores funcionalidades e maior eficiência. As plataformas de computação distribuída possuem um custo relativamente baixo e performances extremamente altas, o que leva ao interesse de toda comunidade científica e pessoas do mundo de negócios a investirem bastante nessas tecnologias. Com os modelos de computação paralelos utilizados hoje em dia, os grids, cluster e o mais atual cloud estão surgindo vários programas mundiais de pesquisas, principalmente focado em cura de doenças, como HIV, e na busca de vida em outros planetas, utilizando computadores dispersos em todo o planeta através do processamento paralelo. Para analisar performances de processamento paralelos, especificamente da arquitetura de cluster de computadores, foi montando um ambiente isolado para realização de testes, de um servidor web. Foram montados 5 cenários, com conexão local entre cliente, SGDB e armazenamento; conexão remota do cliente com o SGDB; conexão remota com o SGDB e armazenamento compartilhado; outro ambiente utilizando um balanceador de carga entre o cliente e o SGDB; e por ultimo um ambiente com cluster de balanceamento de carga com três nós de computação. Com os testes foi possível observar que para a maioria das quantidades de requisições (poucas ou grandes) o ambiente com conexão e armazenamento local foram os mais eficientes, enquanto que para poucas requisições o cenário com o cluster foi o menos eficiente. Porém, ao utilizar grandes quantidades de requisições, o ambiente com cluster de balanceamento de carga obteve resultados bastante satisfatórios. Como o principal objetivo do processamento paralelo é receber e processar milhares de requisições por segundo, a diferença de performance entre computadores convencionais se torna cada vez maior com o aumento da requisições. REFERÊNCIAS BIBLIOGRÁFICAS [1] O que é virtualização e o que ela pode fazer pela minha empresa? http://www.hp.com/latam/br/pyme/solucoes/apr_solucoes_01.html acessado em junho de 2013. [2] VMware, Conceitos de virtualização. http://www.vmware.com/br/virtualization/virtualization- basics/history.html acessado em junho de 2013. [3] VirtualBox. Welcome to VirtualBox. http://www.virtualbox.org/, acessado em junho de 2013. [4] Tecnicas de Virtualização e Autoconfiguração para o Projetos de Redes. http://www.gta.ufrj.br/ftp/gta/TechReports/Natalia11/natalia11.pdf acessado em junho de 2013. [5] Introdução à Virtualização, http://ricardoconzatti.com/blog acessado em junho de 2013. [6] Grid Computing Info Centre, http://www.gridcomputing.com/ acessado em junho de 2013. [7] Grades Computcionais, http://www.gta.ufrj.br/grad/08_1/grades/definicao.html acessado em junho de 2013. [8] World Community Grid, http://www.worldcommunitygrid.org/ acessado em junho de 2013. [9] Grids Computacionais: da Computação de Alto a Serviços Sob Demanda, http://www.siban.com.br/destaque/16_carta.pdf acessado em junho de 2013. [10] Grid Computing, http://projetofirb.blogspot.com.br/ acessado em junho de 2013. [11] Cluster Computing , http://www.ccgrid.org/ acessado em junho de 2013 [12] Cluster: Computação de Alto Desempenho, http://www.ic.unicamp.br/~ducatte/mo401/1s2010/T2/107077-t2.pdf acessado em junho de 2013. [13] http://noticias.seuhistory.com/china-supera-estados-unidos-com-o- supercomputador-mais-potente-da-historia#sthash.sPT75Qke.dpuf acessado em junho de 2013. [14] O que é cloud computing (computação nas nuvens)? http://www.infowester.com/cloudcomputing.php acessado em junho de 2013. [15] Google Cloud Plataform, https://cloud.google.com/ acessado em junho de 2013.