Avaliação de desempenho em ambiente computacional voltado para computação em nuvem com foco em aspectos de planejamento de capacidade



Documentos relacionados
CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Segurança da Informação

Panorama de Aplicações de Alto Desempenho em Nuvem

PROPOSTA COMERCIAL CLOUD SERVER

Arquitetura e Sistema de Monitoramento para

O que é Cloud Computing?

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Avaliação do Uso de Xen em Ambientes de Computação de Alto Desempenho

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

SISTEMAS DISTRIBUÍDOS

Escolha seu serviço Cloud O melhor do Cloud

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

CloudNet: dynamic pooling of cloud resources by live WAN migration of virtual machines

Automatic virtual machine configuration for database workloads (SIGMOD Journal)

Um Modelo de Virtualização em Grades Computacionais para Inserção de Recursos Ociosos

Sistemas Operacionais

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS

1

Comunicação Fim-a-Fim a Alta Vede em Redes Gigabit

Núvem Pública, Privada ou Híbrida, qual adotar?

DAS Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

Impactos do Envelhecimento de Software no Desempenho dos Sistemas. Jean Carlos Teixeira de Araujo

Virtualização de Sistemas Operacionais

2 Computação na Nuvem

COMPUTADORES NAS EMPRESAS Cloud Computing Prof. Reginaldo Brito

ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

UMA PROPOSTA PARA COMPARAÇÃO DE PROVEDORES DE COMPUTAÇÃO EM NUVEM DESDE UMA PERSPECTIVA DE INTEGRAÇÃO DE APLICAÇÕES 1

Cloud Computing. Edy Hayashida

The Eucalyptus Open-source Cloud-computing System

7.Conclusão e Trabalhos Futuros

Por Antonio Couto. Autor: Antonio Couto Enterprise Architect

Sistema Operacional Correção - Exercício de Revisão

ADAPTANDO UMA APLICAÇÃO PARA CLOUD: UMA ANÁLISE ENTRE OS ESFORÇOS UTILIZADOS

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Um Modelo de Virtualização em Grades Computacionais para Inserção de Recursos Ociosos

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Relatório de Progresso

Professor Esp.: Douglas Diego de Paiva

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE

Comparativo de desempenho do Pervasive PSQL v11

Classificação::Modelo de implantação

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Distribuídos

Cloud Computing. Eduardo Roloff

Arquitetura dos Sistemas de Informação Distribuídos

CA Access Control for Virtual Environments

Sistemas Operacionais. Conceitos de um Sistema Operacional

Universidade Federal de Alfenas

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Módulo 4. Construindo uma solução OLAP

Gabriel Oliveira do Nascimento Rogério Libarino Aguilar. UFF - Universidade Federal Fluminense

Curso de Instalação e Gestão de Redes Informáticas

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

Planejamento Estratégico de TI. Felipe Pontes

Isolamento de Recursos na Nuvem Por que isso e ta o importante?

Imagem retirada de documentações de treinamentos oficiais INTEL

Máquinas Virtuais E eu com isso???

Hardware de Computadores

Máquinas Virtuais. Virtualização Tornar virtual. Exemplo comum de Virtualização PORTABILIDADE

Instituto de Educação Tecnológica Pós-graduação Gestão em Tecnologia da Informação - Turma nº 25 08/04/2015. Computação em Nuvem

ANÁLISE DE DESEMPENHO ENTRE SOFTWARES VIRTUALIZADORES

Ferramentas para Simulação e Avaliação de Processadores. de Alto Desempenho

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Análise do impacto de operações de live migration em ambientes de computação em nuvem Workshop MoDCS

Contil Informática. Curso Técnico em Informática Processadores Core

Computação em Nuvem. Henrique Ruschel, Mariana Susan Zanotto, Wélton Costa da Mota. Especialização em Redes e Segurança de Sistemas 2008/2

8 Threads. 8.1 Introdução

Guia Rápido de Licenciamento do SQL Server 2012

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Sistemas Distribuídos

HOEPERS USA TECNOLOGIA PARA QUEBRAR PARADIGMAS E OBTER GERENCIAMENTO TOTAL DAS DEMANDAS DA ORGANIZAÇÃO

Sistemas Operacionais. Prof. André Y. Kusumoto

Proposta de Avaliação de Empresas para o uso do SAAS

Material de Apoio. Sistema de Informação Gerencial (SIG)

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

Capítulo 8. Software de Sistema

Cloud Computing. Andrêza Leite.

Relatório de Pesquisa

SISTEMAS OPERACIONAIS

Análise Comparativa de Desempenho do Hipervisor Xen: Paravirtualização versus Virtualização Total

Transcrição:

Avaliação de desempenho em ambiente computacional voltado para computação em nuvem com foco em aspectos de planejamento de capacidade Dionisio Leite 1, Maycon Peixoto 1, Marcos Santana 1, Regina Santana 1 1 Universidade de São Paulo (USP) Instituto de Ciências Matemática e de Computação (ICMC) Departamento de Sistemas de Computação (SSC) São Carlos SP Brasil {dionisio,maycon,mjs,rcs}@icmc.usp.br Abstract. Capacity planning in cloud computing environments provides a better distribution of available resources and better service to the users of that environment. However, despite being a technical analysis, categorization and logic distribution, it is not always used correctly, by using inaccurate generalizations about the environment that is being developed. Therefore, it is necessary to know all the features and from this point to think the best configuration for the environment. In this paper, is proposed a performance evaluation of resources in a virtualized server suitable for cloud computing. Hypotheses have been raised about the economic model adopted, the proportionality between resources and virtual machines and the virtualization architecture adopted. The results showed that the current economic model restricts some possibilities due to the amount of physical resources. The results also showed there is no exact relationship of proportionality between available resources and virtual machines. Regarding to degradation, the factor more significant is the processor architecture and not the management tools to virtual machines. Resumo. O planejamento de capacidade em ambientes de computação em nuvem proporciona uma melhor distribuição dos recursos disponíveis e melhor atendimento aos usuários desse ambiente. No entanto, apesar de ser uma técnica de análise, categorização e distribuição lógica, a mesma não é sempre utilizada de forma correta, por utilizar generalizações incorretas sobre o ambiente que está sendo desenvolvido. Sendo assim, é necessário conhecer todos os recursos e a partir deste ponto pensar a melhor configuração para o ambiente. Neste artigo, é proposta uma avaliação de desempenho sobre recursos virtualizados em um servidor adequado para computação em nuvem. Foram levantadas hipóteses sobre o modelo econômico adotado, a proporcionalidade entre recursos e máquinas virtuais e a arquitetura de virtualizadores adotados. Os resultados apontaram que o modelo econômico atual restringe algumas possibilidades devido à quantidade de recursos físicos. Verificou-se por meio dos resultados que não há uma relação exata de proporcionalidade entre recursos disponíveis e máquinas virtuais. Com relação a degradação, o fator mais impactante é a arquitetura do processador e não as ferramentas de gerenciamento de máquinas virtuais.

1. Introdução Enquanto o desempenho e a capacidade dos sistemas aumentam, o custo desses sistemas diminui. Em razão desta ascensão tecnológica de hardware e ao sucesso da Web, os recursos computacionais estão se tornando cada vez mais acessíveis (financeiramente) e com suporte a um alto desempenho, em comparação aos computadores de décadas atrás. Esta evolução tecnológica possibilitou o surgimento de um novo paradigma denominado computação em nuvem (Cloud Computing), cuja finalidade é disponibilizar recursos computacionais (processamento, armazenamento, software, etc.) como serviços, permitindo o atendimento da demanda dos usuários [Armbrust et al. 2009]. Segundo Zhang et al. [Zhang et al. 2010], a computação em nuvem apresenta diversas características atrativas, como baixo investimento em infraestrutura, custo de operação, alta escalabilidade e fácil acesso. De acordo com Costa et al. [Costa et al. 2011], as aplicações de e-ciência podem se beneficiar destas características, pois essas aplicações requerem grandes quantidades de processamento. No entanto, os autores demonstram que a elasticidade não é aplicada em sua forma total, onde a quantidade de máquinas virtuais não pode ser alocada para a quantidade total de serviços, pois há uma limitação de recursos computacionais. Baseado no estudo apresentado por Costa et al. [Costa et al. 2011], propomos um conjunto de experimentações que visam identificar qual nível aceitável de desempenho entre máquinas virtuais executando concorrentemente. Para isso, além de verificar o desempenho com o aumento de máquinas virtuais, será verificado o comportamento do desempenho com o aumento da quantidade de núcleos das máquinas virtuais. Dessa forma, a contribuição deste trabalho é identificar a melhor quantidade de máquinas virtuais para um determinado host, verificar como o desempenho é afetado com relação a diversas formas de concorrência por recursos e qual a proporção entre recursos físicos disponíveis e serviços (taxa de degradação). O restante deste artigo está organizado da seguinte forma: a Seção 2 apresenta os conceitos relacionados ao ambiente de computação em nuvem e que são pertinentes a este artigo. A Seção 3 apresenta os trabalhos relacionados à virtualização e ao planejamento de capacidade. A Seção 4 apresenta os materiais utilizados e os métodos para a definição dos conjuntos de experimentos. Os resultados obtidos são discutidos na Seção 5. As conclusões são apresentados na Seção 6. 2. Computação em Nuvem Utilizando uma analogia, um ambiente de computação em nuvem pode ser visto como um conjunto de componentes que executam serviços sob demanda para os clientes, sendo que estes não sabem onde os serviços são executados. Em razão disso é que os serviços estão alocados nas nuvens. O conceito de computação em nuvem se popularizou de maneira natural sem uma definição formada. [Armbrust et al. 2009] afirmam que computação em nuvem é uma ideia antiga cujo tempo finalmente chegou, citando o livro de [Parkhill 1966], o qual tinha uma visão onde a computação seria oferecida como utilidade. Dentre todas as definições de computação em nuvem, a definição do NIST [Mell and Grance 2009] é a mais completa: Computação em Nuvem é um modelo para

acesso conveniente, sob demanda, e de qualquer localização, a uma rede compartilhada de recursos de computação (isto é, redes, servidores, armazenamento, aplicativos e serviços) que possam ser prontamente disponibilizados e liberados com um esforço mínimo de gestão ou de interação com o provedor de serviços. De acordo com o NIST [Mell and Grance 2009], a arquitetura de computação em nuvem é composta de cinco características essenciais: Autoatendimento sob demanda: um consumidor pode unilateralmente dispor de capacidades computacionais, como processamento, armazenamento, tempo de rede, conforme necessário e sem a necessidade de interação humana. Amplo acesso à rede: recursos são disponibilizados através da Internet e podem ser acessados por clientes heterogêneos com qualquer capacidade de processamento (celulares, tablets, notebooks, etc). Agrupamento de recursos: os recursos de computação do provedor são agrupados para atender múltiplos consumidores, com recursos físicos e virtuais (armazenamento, processamento, largura de banda) atribuídos dinamicamente e designados novamente de acordo com a demanda do consumidor. Elasticidade rápida: capacidades computacionais podem ser provisionadas e liberadas elasticamente, sendo que em alguns casos esta elasticidade é automática para se ajustar à demanda de cada consumidor. Para o consumidor, as capacidades provisionadas parecem ser ilimitadas e podem ser atribuídas a qualquer momento. Medição de serviço: recursos da nuvem são controlados e otimizados automaticamente, sendo que o seu uso é medido a partir de um nível de abstração apropriado para cada tipo de serviço (contas de armazenamento, processamento, largura de banda e usuários ativos). A utilização dos recursos pode ser monitorada e descrita em relatórios, o que proporciona transparência tanto para o provedor quanto para o cliente. Dentre as características enumeradas pelo NIST [Mell and Grance 2009], o autoatendimento sob demanda e a elasticidade são tópicos importantes relacionados ao desempenho que é ofertado aos usuários. Deste modo, essas características são consideradas neste artigo. 3. Trabalhos Relacionados Dentro do ambiente de computação em nuvem há o conceito de virtualização, um assunto que é bastante discutido nos últimos anos como é apresentado por Sotomayor et al. [Sotomayor et al. 2006], Koh et al. [Koh et al. 2007], Nance et al. [Nance et al. 2008], Costa et al. [Costa et al. 2011], entre outros autores que discutem as vantagens e desvantagens da sua utilização. Sotomayor et al. [Sotomayor et al. 2006] utilizam a virtualização para contornar as limitações na manipulação de recursos físicos em uma grade computacional. Os autores argumentam que, apesar da sobrecarga gerada, a virtualização é o melhor caminho para a configuração e disponibilização de recursos na grade. O desempenho é melhorado com o uso de cache das imagens das máquinas virtuais e o reuso das mesmas criando assim templates de máquinas virtuais.

Na visão de White and Pilbeam [White and Pilbeam 2010], é importante observar as limitações e exigências do host físico que será utilizado para a virtualização. Os autores apresentam uma revisão dos métodos de virtualização e software de virtualização, e discutem uma análise dos problemas de desempenho inerentes a cada uma dessas abordagens. Como a virtualização é um conceito extremamente utilizado na computação em nuvem, é importante levar em consideração os problemas de desempenho que essa técnica pode causar. Além disso, na computação em nuvem o conceito de SLA (Service-Level Agreement) é muito utilizado para a fixação de contratos, os quais garantem os níveis de qualidade de serviço contratado pelos clientes. Costa et al. [Costa et al. 2011] afirmam que muitas aplicações que possuem alta demanda computacional poderiam se beneficiar da elasticidade de provedores de computação em nuvem, pois, se determinada organização aloca um recurso para processar sua carga, esta pode, teoricamente, alocar N recursos paralelamente pelo mesmo preço, paralelizando assim o seu processamento, o que diminui o tempo total da execução da carga. Os resultados do trabalho mostram que os provedores atuais não permitem que clientes aloquem muitos recursos em paralelo, pois pode ocorrer uma queda drástica no desempenho do provedor devido ao uso concorrente de recursos. Atualmente há dois planos de provisionamento de infraestrutura: reserva de recursos e reserva sob demanda. Chaisiri et al. [Chaisiri et al. 2012] mostram que a reserva de recursos é mais barata que a reserva sob demanda pelo fato de ser estática e não precisar lidar com variações de carga de trabalho. Sendo assim, este artigo propõe uma análise sobre o provisionamento de recursos, considerando o aumento do número de máquinas virtuais concorrentes e o aumento da quantidade de recursos físicos para as máquinas virtuais. Como o ambiente a ser analisado compreende a infraestrutura, o estudo apresentado nas próximas seções aborda a virtualização que é aplicada na computação em nuvem e analisa os fatores de degradação do ambiente a fim de melhorar o provisionamento de máquinas virtuais. Segundo Koh et al. [Koh et al. 2007], as atuais técnicas de virtualização não proveem isolamento efetivo de desempenho entre as máquinas virtuais. Especificamente, a virtualização exerce diferentes tipos de impacto sobre o desempenho conforme o tipo de carga aplicada ao sistema. Embora os hypervisores (monitores das máquinas virtuais) realizem o gerenciamento dos recursos de forma organizada, o comportamento de uma máquina virtual (VM) pode afetar o desempenho de outra VM devido ao uso compartilhado de recursos no host físico. Uma vez que os recursos são compartilhados pelas múltiplas VMs, o desempenho obtido do sistema é imprevisível, instável e pode se degradar em alguns cenários [Gupta et al. 2006] [Koh et al. 2007] [Kesavan et al. 2010]. Ao passo que ocorre o compartilhamento de recursos na infraestrutura da computação em nuvem, a interferência entre as VMs fica mais evidente. Por isso, há interferência entre as VMs executando no mesmo host físico. No caso específico da CPU, a interferência pode acontecer quando o número de núcleos físicos é menor do que o número de VMs instanciadas ou quando existe o compartilhamento da cache L2 entre os núcleos da CPU. Múltiplas VMs estão ligadas ao gerenci-

amento de um único hypervisor e cada uma dessas VMs possui seu próprio ambiente sem a visibilidade das outras. Assim, em razão do isolamento, uma VM não pode ser informada da carga de trabalho em execução em outra VM, sendo impossibilitada de determinar os efeitos da interferência no desempenho [Cherkasova et al. 2007] [Koh et al. 2007] [Ongaro et al. 2008] [Boutcher and Chandra 2010]. De maneira geral, a interferência final é composta por vários fatores, tais como: o tipo de serviço (representando a carga), o número de VMs instanciadas e o algoritmo de escalonamento de VM do hypervisor. Observa-se que essa interferência pode levar a um aumento do tempo de execução de um serviço, resultando em insatisfação dos usuários. Neste contexto, a próxima seção trata da relação desses fatores, os quais influenciam as variáveis de resposta de um ambiente. 4. Materiais e Métodos Para a execução e análise dos experimentos, foi utilizada a metodologia de planejamento de experimento fatorial completo apresentada por Jain [Jain 1991]. Nessa metodologia de planejamento de experimentos é definido que, para um conjunto de experimentos, é necessário definir os fatores fixos (fatores não variáveis desde o primeiro até o último experimento) e os fatores variáveis (fatores que irão ser comparados nos experimentos). Os experimentos foram conduzidos utilizando um único servidor PowerEdge DELL T410 onde foram criadas as máquinas virtuais. Para prover homogeneidade aos experimentos, a configuração do servidor é a mesma tanto para o Xen quanto para o KVM. Xen é um virtualizador free e Open Source que permite a execução de vários outros sistemas operacionais em uma mesma máquina. Já o KVM (Kernel-Based Virtual Machine) é um virtualizador Open Source para Linux que utiliza o modelo de virtualização em nível de hardware implementando a técnica de virtualização completa com suporte as extensões (IVT e AMD-V) de virtualização dos processadores. Assim como a configuração do servidor, a configuração das máquinas virtuais no servidor também é fixa. Para efeito, tanto de comparação quanto de reprodução, os atributos físicos do servidor são mostrados na Tabela 1. Tabela 1. Configuração do Servidor Memória 12GB Memory (3x4GB) 1333MHz Dual Ranked RDIMMs Optimized Processador Intel Xeon X5660 HT 1333MHz Número de cores 6 Número de threads 12 Cache L1 6 x 32 KB instruction caches 6 x 32 KB data caches Cache L2 6 x 256 KB Cache L3 12 MB Disco SATA de 500GB 3.5 Sistema Operacional Debian 6 Kernel 2.6.32-5 x86 64 Com as características apresentadas na Tabela 1 é possível reproduzir o ambiente que foi utilizado para realizar as experimentações, bem como para fazer generalizações, pois pode haver vários servidores com configurações semelhantes e que, provavelmente, obterão os mesmo resultados apresentados neste artigo. As configurações das máquinas virtuais bem como informações importantes, como escalonadores, são apresentados na Tabela 2.

Tabela 2. Configuração das Máquinas Virtuais Características da VM Xen 4.0.1 KVM 0.12.5 Memória 512MB 512MB Processador VCPU (2.8 GHz) VCPU (2.8 GHz) Disco 8 GB 8 GB Sistema Operacional Ubuntu 10.04 kernel Ubuntu 10.04 2.6.32-33-server 2.6.32-33-server Escalonador Processo Host Credit Scheduler CFS Escalonador Processo VM CFS CFS É importante observar que as configurações das máquinas virtuais são padrão, ou seja, não foi realizada nenhum melhoria ou troca de características do modelo padrão de máquina virtual. A quantidade de experimentos é apresentada na Tabela 3. Tabela 3. Experimentos realizados Exp VM XEN VM KVM Núcleos Execuções 1 1 1 1 10 2 2 2 1 10 3 4 4 1 10 4 6 6 1 10 5 8 8 1 10 6 10 10 1 10 7 12 12 1 10 8 1 1 6 10 9 2 2 6 10 10 1 1 12 10 1 2 12 10 Como apresentado na Tabela 3, há experimentos considerando um núcleo por máquina virtual, até o limite de cores do servidor, a fim de verificar qual o ponto de sobrecarga. Além disso, há a necessidade de verificar os ganhos de desempenho com um aumento de núcleos, do experimento 8 ao 11, visando identificar as melhores configurações de desempenho e quais os níveis de sobrecarga obtidos. Para uma correta avaliação e observação da utilização de recursos, foi utilizado um benchmark que faz uso intensivo de CPU. Esse tipo de carga foi selecionado por ser dependente apenas do processador, possibilitando fazer generalizações para outros tipos de processadores, enquanto que outros tipos de carga como: entrada e saída (I/O) e sistema, dependendo dos periféricos (Disco SCSI - Small Computer System Interface e NAS - Network-Attached Storage como exemplos de I/O e memórias com altas frequências), podem ter resultados muito diferentes, impossibilitando generalizações. O benchmark utilizado foi o SmallPT 1. O SmallPt é um renderizador global de imagens que faz uso estritamente de CPU. 5. Resultados Os resultados obtidos refletem o desempenho obtido em um servidor preparado para virtualização e computação de alto desempenho. Os experimentos foram elaborados para verificar qual o desempenho obtido quando há concorrência de máquinas virtuais em um mesmo servidor. Esse tipo de experimento é necessário para verificar como o planejamento de capacidade pode ser realizado em servidores com configurações semelhantes às utilizadas nesta pesquisa. 1 http://www.kevinbeason.com/smallpt/

Normalmente utiliza-se a quantidade de recursos físicos pela quantidade de serviços executando, dado por P/N. O valor de P representa a quantidade de recursos disponíveis e o valor de N representa a quantidade de serviços executando. É necessário verificar que a carga a ser representada por N deve ser a quantidade de máquinas virtuais, pois elas devem fornecer aos seus usuários sua capacidade plena de processamento. A Figura 1 apresenta o desempenho obtido nas máquinas virtuais e possibilita a comparação de proporcionalidade oferecida pela relação de recursos por serviços. Interval Plot of Tempo Resposta (s) 95% CI for the Mean 250 229,2 218 Tempo Resposta (s) 200 150 100 140,2 134,8 141 136 140 140 140 140 164 160,8 180,7 175,9 50 0 VMM Máquinas 1 2 4 6 8 10 12 Figura 1. Desempenho observado para carga estritamente CPU-Bound intra-host De acordo com a Figura 1, a proporcionalidade sugerida por P/N não é obtida. De acordo com nosso experimentos, não existe concorrência até o limite de seis máquinas virtuais que, de acordo com a Tabela 1, é a quantidade de núcleos físicos. É importante ressaltar que o sistema operacional do servidor (host) trabalhar com doze núcleos e não com seis. Essa característica é determinante para a elaboração de um planejamento de capacidade correto. A Figura 2 apresenta as diferenças obtidas entre as máquinas virtuais em termos de porcentagem de desempenho. 70 60 50 64,0 55,8 Virtualizador KVM Xen Desempenho 40 30 20 17,0 27,0 25,0 10 15,0 0 0,0 0,0 0,0 0,0 0 2 4 6 8 10 Número de Máquinas virtuais 12 Figura 2. Relação de desempenho entre as máquinas virtuais intra-host

Como pode ser observado na Figura 2, o limite de núcleos que o sistema operacional do servidor trabalha gera uma sobrecarga, em geral, entre 55,8% e 64% dependendo do tipo de virtualizador. Essa relação de desempenho mostra que a proporcionalidade entre quantidade de recursos físicos e serviços executando (máquinas virtuais) não é o melhor indicador para formular a capacidade geral do ambiente, uma vez que se pode somar todos os recursos disponíveis e assim fornecer serviços regulares de forma correta. Outro ponto de destaque é o uso de escalabilidade horizontal, onde os recursos das máquinas virtuais podem ser expandidos. O gráfico da Figura 3 apresenta os resultados obtidos e as comparações entre os resultados. 140 120 Interval Plot of Tempo Resposta (s) 95% CI for the Mean 140,2 140,2 134,8 136 Tempo Resposta (s) 100 80 60 40 20 23,9 35,1 23,8 35,1 18,2 36,9 18,7 32,2 0 VM Virtualizador Núcleos Xen 1 KVM Xen 6 KVM Xen 12 KVM Figura 3. Índices de desempenho com configurações variadas de núcleos por máquinas virtuais concorrentes De acordo com o gráfico da Figura 3, o desempenho obtido foi melhor para as quantidades maiores de núcleos virtuais (VCPU - Virtual CPU). A diferença entre 1VCPU e 6VCPUs fica em torno de 83%, porém quando o limite é aumentado de 6VCPUS para 12VCPUS o ganho de desempenho fica em torno de 22%. Nota-se que, para duas máquinas virtuais, tanto com 6 como com 12 VCPUS, o desempenho não segue o mesmo comportamento apresentado com apenas 1VCPU. Esse fato é devido à concorrência pelos núcleos do servidor. A diferença obtida entre as máquinas virtuais para 6VCPUS fica em torno de 47%,enquanto que, a diferença obtida com 12VCPUS fica em torno de 100%. Apesar da degradação de desempenho apresentada para 1 e 2VMs, os tempos de resposta são melhores que os obtidos quando a máquina virtual possui apenas 1VCPU. Apesar das quantidades maiores apresentarem melhores índices de desempenho, essa característica torna o trabalho de planejamento de capacidade um desafio ainda maior, pois não existe uma forma de prever qual será a carga exata de cada cliente. Como o ambiente de nuvem propicia o aluguel de recursos computacionais por tempos determinados, o cliente pode não conhecer ao certo sua carga de trabalho e o provedor de serviços pode não possuir uma regra para determinar a mesma. Dessa forma, é possível verificar porque atualmente não é válido fazer a relação entre um recurso por mil horas ou mil recursos por uma hora, apesar de ser possível fazer

essa relação. O modelo econômico praticado atualmente visa atender o máximo de clientes e a relação citada anteriormente precisa de formas de agendamento e realocação de máquinas virtuais para fornecer os recursos físicos adequados, isso acaba sendo inviável para os fornecedores de computação em nuvem. 6. Conclusão O planejamento de capacidade é uma ferramenta muito útil para o desenvolvimento de ambientes computacionais de forma coerente e sem desperdícios de recursos. Essa técnica, apesar de parecer trivial e até mesmo inútil para alguns casos, é fundamental atualmente, pois requer conhecimento do sistema de forma geral e quais os possíveis pontos de degradação do mesmo. Este artigo propôs identificar três pontos julgados importantes no desenvolvimento de ambientes voltados para aplicações de alto desempenho: modelo econômico atual, relação de proporcionalidade entre recursos e serviços e arquitetura dos virtualizadores utilizados. Nossa pesquisa identificou que o modelo econômico adotado em nuvem propõe a auto configuração de recursos de acordo com a demanda dos serviços, no entanto essa premissa não é adotada quando se trata de aplicações que requerem uma alta quantidade de processamento. De acordo com os experimentos realizados, verificou-se que a quantidade de recursos para o uso concorrente de forma a não degradar o desempenho é o limite de núcleos físicos, no entanto há o uso de multithread que dá a falsa sensação de mais processamento do que de fato há. Essa característica pode levar a um planejamento de capacidade de forma incoerente uma vez que devem ser observados a quantidade de núcleos e não de threads disponíveis. Outro ponto é a proporcionalidade entre recursos disponíveis e serviços executando. Foi comprovado que não há de fato uma proporção exata entre a relação recursos/serviços. O planejamento nesse caso deve, em primeiro lugar considerar a quantidade física de recursos e em segundo lugar, considerar as características pertinentes ao processador utilizado, como tamanho de caches, quantidade de instruções e outras características pertinentes ao processador em questão. O terceiro ponto foi verificar que apesar de haver uma diferença de desempenho entre os tipos de virtualizadores, na média o desempenho dos virtualizadores é o mesmo (comprovado pelos resultados apresentados no gráfico de desempenho com os erros obtidos). Fica claro que a preocupação maior no desenvolvimento do ambiente de alto desempenho é com relação a arquitetura do processador e não nas tecnologias de gerência de máquinas virtuais. Referências Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R. H., Konwinski, A., Lee, G., Patterson, D. A., Rabkin, A., Stoica, I., and Zaharia, M. (2009). Above the clouds: A berkeley view of cloud computing. Technical Report UCB/EECS-2009-28, EECS Department, University of California, Berkeley. Boutcher, D. and Chandra, A. (2010). Does virtualization make diskscheduling passé? SIGOPS Oper. Syst. Rev., 44(1):20 24. Chaisiri, S., Lee, B., and Niyato, D. (2012). Optimization of resource provisioning cost in cloud computing. Services Computing, IEEE Transactions on, 5(2):164 177.

Cherkasova, L., Gupta, D., and Vahdat, A. (2007). Comparison of the three cpu schedulers in xen. SIGMETRICS Perform. Eval. Rev., 35(2):42 51. Costa, R., Brasileiro, F., Lemos, G., and Mariz, D. (2011). Sobre a amplitude da elasticidade dos provedores atuais de computação na nuvem. Anais do XXIX Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC2011). Sociedade Brasileira de Computação (SBC), pages 221 234. Gupta, D., Cherkasova, L., Gardner, R., and Vahdat, A. (2006). Enforcing performance isolation across virtual machines in xen. In Proceedings of the ACM/IFIP/USENIX 2006 International Conference on Middleware, pages 342 362. Springer-Verlag New York, Inc. Jain, R. (1991). The art of computer systems performance analysis: techniques for experimental design, measurement, simulation, and modeling. Wiley, pages 44 56. Kesavan, M., Gavrilovska, A., and Schwan, K. (2010). On disk i/o scheduling in virtual machines. In Proceedings of the 2nd conference on I/O virtualization, pages 6 6. USENIX Association. Koh, Y., Knauerhase, R., Brett, P., Bowman, M., Wen, Z., and Pu, C. (2007). An analysis of performance interference effects in virtual environments. In Performance Analysis of Systems Software, 2007. ISPASS 2007. IEEE International Symposium on, pages 200 209. Mell, P. and Grance, T. (2009). The NIST Definition of Cloud Computing. Technical report. Nance, K., Bishop, M., and Hay, B. (2008). Virtual machine introspection: Observation or interference? Security & Privacy, IEEE, 6(5):32 37. Ongaro, D., Cox, A. L., and Rixner, S. (2008). Scheduling i/o in virtual machine monitors. In Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, VEE 08, pages 1 10, New York, NY, USA. ACM. Parkhill, D. (1966). The challenge of the computer utility. Number p. 246 in The Challenge of the Computer Utility. Addison-Wesley Pub. Co. Sotomayor, B., Keahey, K., and Foster, I. (2006). Overhead matters: A model for virtual resource management. In Proceedings of the 2nd International Workshop on Virtualization Technology in Distributed Computing, page 5. IEEE Computer Society. White, J. and Pilbeam, A. (2010). A survey of virtualization technologies with performance testing. Arxiv preprint arxiv:1010.3233. Zhang, Q., Cheng, L., and Boutaba, R. (2010). Cloud computing: state-of-the-art and research challenges. Journal of Internet Services and Applications, 1:7 18.