uma proposta de framework conceitual para analise de ... · uma proposta de framework conceitual...

12
Uma Proposta de Framework Conceitual para An ´ alise de Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho 1,2,4 , Danielo G. Gomes 1,3 , Jos´ e Neuman de Souza 1,2 1 Grupo de Redes de Computadores, Engenharia de Software e Sistemas (GREat) 2 Mestrado e Doutorado em Ciˆ encia da Computac ¸˜ ao (MDCC) 3 Departamento de Engenharia em Teleinform´ atica (DETI) 4 Instituto UFC Virtual Universidade Federal do Cear´ a Fortaleza – CE – Brasil [email protected], {danielo,neuman}@ufc.br Abstract. Elasticity can be understood as how a computational cloud adapts to variations in their workload by provisioning and de-provisioning resources. This article proposes a conceptual framework for conducting elasticity perfor- mance analysis in cloud computing in a systematic and reproducible way. For verification and validation of the proposal, we performed a case study in the Cloud UFC, a private cloud installed on Campus do Pici, Federal University of Cear´ a. As a result, two experiments were designed using microbenchmarks and a classic scientific application. Through these experiments, the framework was validated in their activities, allowing systematization of an analysis of the elasticity through mechanisms of autonomic computing and a set of allocation time and allocated resources oriented metrics. Resumo. Elasticidade pode ser entendida como o qu ˜ ao uma nuvem computaci- onal se adapta a variac ¸˜ oes na sua carga de trabalho atrav´ es do provisionamento e desprovisionamento de recursos. Este artigo prop˜ oe um framework conceitual para a realizac ¸˜ ao de an ´ alise de desempenho da elasticidade em nuvens compu- tacionais de maneira sistem´ atica e reproduz´ ıvel. Para verificac ¸˜ ao e validac ¸˜ ao da proposta, realizou-se um estudo de caso na Cloud UFC, uma nuvem pri- vada instalada no Campus do Pici da Universidade Federal do Cear´ a. Como resultado, dois experimentos foram projetados utilizando microbenchmarks e uma aplicac ¸˜ ao cient´ ıfica cl´ assica. Atrav´ es destes experimentos, o framework foi validado em suas atividades, permitindo a sistematizac ¸˜ ao de uma an ´ alise da elasticidade por meio de mecanismos de computac ¸˜ ao autonˆ omica e um conjunto de m´ etricas orientadas a tempos de alocac ¸˜ ao e recursos alocados. 1. Introduc ¸˜ ao Com o aumento de acesso aos ambientes computacionais em nuvem e sua facilidade de utilizac ¸˜ ao, baseada no modelo de pagamento por uso, ´ e natural que a quantidade de usu´ arios e as respectivas cargas de trabalho tamb´ em cresc ¸am. Como consequˆ encia, os provedores devem ampliar seus recursos e manter o n´ ıvel de qualidade acordado com os clientes, sob pena de quebras do Service Level Agreement (SLA) e decorrentes multas. O monitoramento de recursos computacionais, como CPU, mem´ oria e banda, se torna essencial tanto para os provedores, os quais disponibilizam os servic ¸os, quanto Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014 43

Upload: others

Post on 04-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

Uma Proposta de Framework Conceitual para Analise deDesempenho da Elasticidade em Nuvens Computacionais

Emanuel F. Coutinho1,2,4, Danielo G. Gomes1,3, Jose Neuman de Souza1,2

1Grupo de Redes de Computadores, Engenharia de Software e Sistemas (GREat)2Mestrado e Doutorado em Ciencia da Computacao (MDCC)3Departamento de Engenharia em Teleinformatica (DETI)

4Instituto UFC VirtualUniversidade Federal do Ceara

Fortaleza – CE – Brasil

[email protected], {danielo,neuman}@ufc.br

Abstract. Elasticity can be understood as how a computational cloud adaptsto variations in their workload by provisioning and de-provisioning resources.This article proposes a conceptual framework for conducting elasticity perfor-mance analysis in cloud computing in a systematic and reproducible way. Forverification and validation of the proposal, we performed a case study in theCloud UFC, a private cloud installed on Campus do Pici, Federal Universityof Ceara. As a result, two experiments were designed using microbenchmarksand a classic scientific application. Through these experiments, the frameworkwas validated in their activities, allowing systematization of an analysis of theelasticity through mechanisms of autonomic computing and a set of allocationtime and allocated resources oriented metrics.

Resumo. Elasticidade pode ser entendida como o quao uma nuvem computaci-onal se adapta a variacoes na sua carga de trabalho atraves do provisionamentoe desprovisionamento de recursos. Este artigo propoe um framework conceitualpara a realizacao de analise de desempenho da elasticidade em nuvens compu-tacionais de maneira sistematica e reproduzıvel. Para verificacao e validacaoda proposta, realizou-se um estudo de caso na Cloud UFC, uma nuvem pri-vada instalada no Campus do Pici da Universidade Federal do Ceara. Comoresultado, dois experimentos foram projetados utilizando microbenchmarks euma aplicacao cientıfica classica. Atraves destes experimentos, o frameworkfoi validado em suas atividades, permitindo a sistematizacao de uma analise daelasticidade por meio de mecanismos de computacao autonomica e um conjuntode metricas orientadas a tempos de alocacao e recursos alocados.

1. IntroducaoCom o aumento de acesso aos ambientes computacionais em nuvem e sua facilidade deutilizacao, baseada no modelo de pagamento por uso, e natural que a quantidade deusuarios e as respectivas cargas de trabalho tambem crescam. Como consequencia, osprovedores devem ampliar seus recursos e manter o nıvel de qualidade acordado com osclientes, sob pena de quebras do Service Level Agreement (SLA) e decorrentes multas.

O monitoramento de recursos computacionais, como CPU, memoria e banda, setorna essencial tanto para os provedores, os quais disponibilizam os servicos, quanto

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

43

Page 2: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

para seus clientes. Uma maneira de monitorar aplicacoes em nuvem de modo maisefetivo e utilizar mecanismos de computacao autonomica, atraves dos quais recursossao adicionados e removidos do ambiente conforme limiares de uso pre-estabelecidos[Kephart e Chess 2003]. Esse tipo de estrategia de monitoramento esta diretamente asso-ciado a uma das principais caracterısticas da Computacao em Nuvem: a elasticidade.

Elasticidade pode ser definida como o quao um sistema computacional e capazde se adaptar a variacoes na carga de trabalho pelo provisionamento e desprovisiona-mento de seus recursos de maneira autonomica, de modo que em cada instante no tempoos recursos disponıveis atendam da melhor maneira possıvel a demanda da carga de tra-balho [Herbst et al. 2013]. Um estudo sobre elasticidade em nuvem foi realizado em[Coutinho et al. 2013b], com destaque para diversos aspectos como: definicoes, estadoda arte da elasticidade, analise de desempenho, metricas, estrategicas elasticas, bench-marks, desafios e tendencias na construcao de solucoes elasticas.

Diversas arquiteturas para solucoes de provisionamento e manutencao de SLAutilizando recursos de computacao autonomica tem sido propostas [Rego et al. 2011,Tordsson et al. 2012]. Porem, devido a pouca disponibilidade de informacao acerca desua instalacao e configuracao corretas, do ponto de vista experimental em geral nao etrivial implementar tais arquiteturas, muito menos aplica-las em ambientes de nuvem.Alem disso, nota-se uma carencia de trabalhos na literatura que avaliem o desempenhodestes ambientes de forma metodologica e sistematizada. Na tentativa de diminuir estalacuna, propomos um framework conceitual para a resolucao de um problema especıficode analise de desempenho da elasticidade no domınio das nuvens computacionais.

O objetivo geral deste artigo e analisar o desempenho da elasticidade em um am-biente de nuvem de maneira sistematica. Para alcanca-lo, tracamos tres objetivos es-pecıficos: (i) propor um framework conceitual com foco em elasticidade; (ii) realizarexperimentos para validacao do framework utilizando metricas orientadas a velocidade(tempo de resposta) e utilizacao de recursos; e (iii) implementar ferramentas para suportea analise de desempenho proposta (microbenchmarks, cargas de trabalho e visualizacao).Para a validacao da proposta, realizamos um estudo de caso na Cloud UFC1, uma nuvemprivada instalada no Campus do Pici da Universidade Federal do Ceara.

2. Proposta de um Framework Conceitual

Um framework ou arcabouco conceitual e um conjunto de conceitos utilizados para aresolucao de um problema de um domınio especıfico, sendo que existem dois tipos: fra-meworks verticais (ou especialistas, confeccionados atraves da experiencia obtida em umdeterminado domınio especıfico ou de um especialista, tentando resolver problemas deum determinado domınio de aplicacao), e frameworks horizontais (podem ser utilizadosem diferentes domınios) [Cruz 2013].

Sendo assim, o framework conceitual proposto neste trabalho e vertical. Nele pro-pomos um conjunto de atividades para a execucao de uma analise de desempenho da elas-ticidade em nuvem computacional de maneira sistematizada. As atividades relacionadasao planejamento da elasticidade foram elaboradas com base em princıpios de computacaoautonomica, na arquitetura definida em [Kephart e Chess 2003]. Basicamente, o fra-

1CloudUFC - http://www.lia.ufc.br/ cloud/

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

44

Page 3: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

Figura 1. Fluxo de atividades do framework conceitual proposto

mework possui tres macroatividades, relacionadas ao planejamento, inicializacao deservicos e execucao, e suas respectivas atividades.

A Figura 1 ilustra o framework de maneira integrada e com a ideia de fluxo deoperacao. A sequencia de atividades representada pela linha cheia possibilita a analisede desempenho de maneira generica. A linha pontilhada representa sua extensao paraum estudo de caso de elasticidade. A ideia de ciclo de vida ou fases pode ser aplicadanesta abordagem devido a natureza cıclica da analise de desempenho proposta. Aposa atividade “Executar Acoes” e possıvel retornar para um replanejamento, ou repetir amacroatividade “Executar Analise de Desempenho”.

3. Materiais e Metodos

Para a validacao do framework, dois experimentos foram projetados e executados emum mesmo ambiente de nuvem. O OpenNebula 3.8 foi utilizado para a criacao de uma

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

45

Page 4: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

nuvem privada. Nao foram utilizados neste trabalho nuvens publicas comerciais. Todas asmaquinas fısicas sao do tipo Ci5 e Ci7, 24 GB de memoria, sistema operacional UbuntuServer 12.04 64 bits e hipervisor KVM. Foram utilizadas quatro maquinas virtuais nosexperimentos, todas com 1 VCPU, 1 GB de memoria e sistema operacional Ubuntu Server12.04 64 bits. Foi utilizado como servidor web o Apache Tomcat, balanceador de carga oNGINX, e gerador de cargas de trabalho o HTTPERF. A instanciacao do framework foidesenvolvida em Java e shell script. A representacao do testbed esta descrita na Figura 2.

Figura 2. Arquitetura e ambiente experimental

3.1. Projeto dos ExperimentosO objetivo dos experimentos e avaliar o comportamento de aplicacoes web diante de car-gas de trabalho dinamicas, e como se comportam de maneira autonomica para adaptacaoa variacoes de demanda e manutencao do SLA. Para isso, o framework sera utilizado, eassim suas atividades serao instanciadas para o ambiente e para o projeto de experimentos.Dessa maneira, as atividades serao validadas, nao implementando solucoes otimas.

As ferramentas foram definidas na infraestrutura. Para a macroatividade “PlanejarSuporte”, arquivos texto registram o log das operacoes de coleta das maquinas virtuais.O log gerado para cada maquina virtual em arquivo texto contem a data da coleta, valoresde utilizacao de CPU, memoria, disco e rede. Tambem foi gerado um arquivo de logpara a media de utilizacao de CPU e alocacao de recursos, permitindo sua leitura em umaferramenta construıda especificamente para a visualizacao grafica de todas as metricas demaneira individual (metricas coletadas de cada maquina virtual) e em conjunto (metricascoletadas de todas as maquinas virtuais ao mesmo tempo). A consolidacao dos dados se dapor meio da leitura dos arquivos de log, onde a partir desses dados decisoes sao tomadas.O dados coletados sao apresentados sob a forma de graficos de linha, disponibilizadosatraves de uma aplicacao de visualizacao. O intervalo de coletas definido foi de 1 segundoadicionado do custo da coleta e analise dos resultados.

Para a avaliacao da elasticidade, utilizamos um conjunto de metricas proposto em[Coutinho et al. 2013a], divididas em dois grupos: tempo de execucao de operacoes e

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

46

Page 5: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

utilizacao de recursos. As metricas relacionadas a tempo sao: Tempo de Alocacao So-breprovisionado (TASo), correspondente ao tempo utilizado em operacoes de remocao derecursos; Tempo de Alocacao Subprovisionada (TASu), utilizado para medir o tempo deoperacoes de adicao de recursos; Tempo de Alocacao Estabilizada (TAE), tempo no qualnao ha adicao ou remocao de recursos; e Tempo de Alocacao Transitoria (TAT), corres-pondente ao tempo em que os efeitos da adicao ou remocao de recursos ainda nao impac-taram no ambiente. As metricas relacionadas a recursos sao: Total de Recursos AlocadosSubprovisionados (TRASu), correspondente a quantidade de recursos alocados em umestado subprovisionado, mas nao estabilizado; Total de Recursos Alocados Sobreprovisi-onados (TRASo), indicando a quantidade de recursos alocados em um estado sobrepro-visionado, mas nao estabilizado; e o Total de Recursos Alocados Estabilizados (TRAE),que corresponde a quantidade de recursos em um estado estabilizado. As metricas Elasti-cidade de Scaling UP e Elasticidade de Scaling Down, propostas por [Herbst et al. 2013],serao utilizadas como analise complementar. Estas metricas avaliam a velocidade na qualum ambiente realiza essas operacoes. Demais metricas estao descritas na Tabela 1.

Cargas de trabalho foram utilizadas diretamente na maquina virtual do balan-ceador de carga, originadas de navegadores web e HTTPERF, distribuıdas entre as de-mais maquinas virtuais. Adicionalmente, utilizou-se cargas de trabalho diretamente nasmaquinas virtuais. A ideia e possibilitar a emulacao da concorrencia pelos recursos emdiferentes maneiras de se utilizar um ambiente de Computacao em Nuvem.

Para a macroatividade “Planejar Elasticidade”, um mecanismo baseado na arqui-tetura de Computacao Autonomica definida em [Kephart e Chess 2003] foi construıdoutilizando aspectos de auto-configuracao. Uma estrategia de elasticidade horizontal foiutilizada, atraves da qual a medida que recursos sao necessarios, novas instancias demaquinas virtuais sao adicionadas, por meio de um balanceador de carga, e retiradascaso nao sejam mais necessarias. A metrica utilizada para disparar acoes de elasticidadefoi a media do percentual de utilizacao de CPU das maquinas virtuais. Os limiares utili-zados para a execucao de acoes de elasticidade no ambiente foram: acima de 90% (alocauma nova maquina virtual), abaixo de 80% (desaloca uma maquina virtual), e entre 80%e 90% (mantem alocacao). Esses valores foram definidos considerando a premissa que asituacao ideal de consumo de CPU das maquinas virtuais do ambiente deveria ser quaseem sua totalidade, maximizando a utilizacao da capacidade de processamento.

Esse valor foi calculado como a media das 10 ultimas coletas de utilizacao de CPUnas maquinas virtuais. Como mecanismo de predicao foi utilizado regressao multilinearsobre valores de utilizacao de CPU, memoria, disco e rede, coletados em experimentosprevios, com cargas de trabalho semelhantes. Esse calculo e realizado para decidir se umaacao de alocacao ou desalocacao deve ser executada, antes mesmo do calculo da media.

Para o provisionamento dos recursos, a estrategia de um balanceamento de cargafoi utilizada, onde maquinas virtuais sao adicionadas conforme a necessidade. Um con-junto de scripts foi desenvolvido para promover acoes e estrategias de analise.

As macroatividades “Inicializar Servicos da Analise de Desempenho” e “Execu-tar Analise de Desempenho” foram implementadas atraves de scripts que inicializam osservicos de coleta, analise, geracao das cargas de trabalho (operacoes manuais com oHTTPERF), e consolidacao dos dados, alem de analisar e disparar acoes. A Tabela 1

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

47

Page 6: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

Tabela 1. Projeto de experimentosCaracterısticas DescricaoSistema Ambiente privado de Computacao em Nuvem (OpenNebula)Metricas Tempo de resposta das aplicacoes, percentual de utilizacao de CPU, percen-

tual de utilizacao de memoria, pacotes recebidos e enviados em KB, KB li-dos e escritos em disco; TASo, TASu, TAE, TAT, TRASu, TRASo, TRAE[Coutinho et al. 2013a]; Elasticidade de Scaling UP e Elasticidade de ScalingDown [Herbst et al. 2013]

Parametros Fixos CPU, memoria, quantidade de maquinas virtuaisFatores Confi-guraveis

Configuracao do benchmark (repeticoes e tamanho da matriz), configuracaodo BLAST (tamanho do arquivo, tamanho da consulta), configuracao do HTT-PERF (quantidade de requisicoes, taxa de requisicoes, tempo)

Tecnica de Avaliacao MedicaoCarga de Trabalho Experimento 1: Executar multiplicacoes de matrizes (dimensao

200x200x200) atraves de um microbenchmark construıdo na linguagemde programacao Java, sob a forma de pequenas aplicacoes web, comrequisicoes disparadas atraves do HTTPERF, com taxas variando de 1 a 5requisicoes por segundo e quantidade de conexoes variando em 10, 30 e 50;Experimento 2: Executar uma aplicacao cientıfica, o BLAST, atraves deum microbenchmark construıdo na linguagem de programacao Java, sob aforma de pequenas aplicacoes web, com requisicoes disparadas atraves doHTTPERF, com taxas variando de 1 a 3 requisicoes por segundo e quantidadede conexoes variando em 3, 6 e 9

detalha itens do projeto experimental, tais como metricas e cargas de trabalho.

3.2. Experimento 1 - Microbenchmark

Neste experimento projetamos uma carga de trabalho sintetica orientada a CPU e memoriapara multiplicacao de matrizes. A duracao deste experimento foi de 12min58s. A Figura 3ilustra a utilizacao media de CPU, alocacao das maquinas virtuais, e o tempo de respostadas requisicoes.

Conforme observado na Figura 3, muitas variacoes no consumo de CPU ocorre-ram, e a medida em que a primeira maquina virtual executa requisicoes, a utilizacao deCPU aumenta ao longo do tempo. Ao violar o SLA estabelecido, novas instancias sao alo-cadas. Para memoria o comportamento foi quase constante, estando em todas as maquinasvirtuais quase sempre em 100% de utilizacao. O tempo de resposta do servidor teve gran-des picos na maquina virtual 1. Estes picos se devem ao fato de que muitas requisicoesestavam represadas no servidor da maquina virtual 1, e demoraram muito a serem finali-zadas. Nas demais maquinas virtuais o comportamento foi mais constante, o que implicaem uma distribuicao de requisicoes conforme a necessidade. A media de utilizacao deCPU e alocacao das maquinas virtuais, metricas diretamente associadas a elasticidade,coincidiram quando o SLA estabelecido era violado. Quando a carga de utilizacao daCPU era inferior ao limite estabelecido, havia uma desalocacao de maquinas virtuais.

3.3. Experimento 2 - BLAST

A carga de trabalho neste experimento foi projetada para executar uma aplicacao ci-entıfica, o BLAST, orientada a CPU, memoria e disco. O BLAST e uma ferramentade similaridade muito utilizada para sequencias de proteınas. A duracao do experimento

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

48

Page 7: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

Figura 3. Utilizacao media de CPU, alocacao de maquinas virtuais, e tempo deresposta das requisicoes para o experimento 1

foi de 19 minutos. A Figura 4 ilustra a utilizacao media CPU, a quantidade de maquinasvirtuais alocadas, e o tempo de resposta das requisicoes.

Figura 4. Utilizacao media de CPU, alocacao de maquinas virtuais, e tempo deresposta das requisicoes para o experimento 2

O BLAST e uma aplicacao de computacao cientıfica, e seu consumo de CPU ealto, constatado na Figura 4. Logo que a primeira maquina virtual executava requisicoes,sua utilizacao de CPU aumentava, e ao superar o SLA estabelecido, novas instancias

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

49

Page 8: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

foram alocadas. Para memoria e acesso a disco o comportamento foi quase constante,porem a memoria em todas as maquinas virtuais permaneceu quase sempre em 100%,semelhante ao experimento anterior. Espera-se que em aplicacoes melhores estruturadascom o BLAST, a leitura em disco seja maior devido a pesquisas em arquivos. O tempode resposta do servidor foi maior na maquina virtual 1, com aproximadamente picos noinıcio, na metade, e no final do experimento. Nas demais maquinas virtuais foi quaseconstante. Este pico se deve ao fato de que muitas requisicoes ficaram presas no servidorda maquina virtual 1, demorando mais tempo a finalizarem. Em picos de utilizacao deCPU as 3 maquinas virtuais foram alocadas, e em geral ha uma desalocacao logo apos.Isso se explica devido a carga de trabalho empregada, que parava de enviar requisicoespor um intervalo de tempo, perıodo em que as requisicoes alocadas eram finalizadas.

3.4. Discussao dos ResultadosO objetivo dos experimentos foi validar o framework. Todas as atividades definidasna Secao 2 foram executadas e atendidas. De maneira geral, o framework permitiu arealizacao de analise de desempenho em um ambiente de Computacao em Nuvem, comfoco em elasticidade.

Percebeu-se nos dois experimentos que em alguns momentos a media de utilizacaoda CPU ficou acima do limite. Caso existissem maquinas virtuais adicionais alocadas aobalanceador de carga, seria provavel que tais violacoes nao ocorressem tanto. Isso e umaspecto direto da atividade de mecanismos de provisionamento. Nesse caso, o ideal e queinstancias de maquinas virtuais fossem geradas dinamicamente sempre que necessario, efinalizadas quando nao mais necessario. Entretanto, este ja e um ponto de ajuste a serrealizado sobre o ambiente, alertado pela utilizacao do framework.

O tempo de resposta em geral e alto, mesmo quando novas maquinas virtuais saocriadas. Muitos deles devido a latencia das operacoes, e o ideal e que fosse evitada.Para minizar esses altos valores, possivelmente uma escolha de limiares diferentes seriasuficiente para manter a latencia sempre dentro de um limite aceitavel, alem da inclusao deuma regra que contemplasse o tempo de resposta como criterio para acoes de elasticidade.

A Tabela 2 contem as metricas calculadas para os dois experimentos. Em ambosexperimentos, TAE ocupa a maioria do tempo de alocacao, conforme esperado. Isto sedeve ao fato que grande parte dos experimentos a alocacao dos recursos e estavel, vari-ando apenas quando ha incremento ou reducao de recursos, refletidos nos tempos TASu,TASo e TAT. Apesar de experimentos com caracterısticas diferentes de cargas de trabalho,

Tabela 2. Metricas coletadas para os experimentos 1 e 2Metrica Experimento 1 Experimento 2Tempo Total do Experimento (minutos) 12:58 19:00Tempo de Alocacao Estabilizada (TAE) 11:01 16:51Tempo de Alocacao Subprovisionada (TASu) 00:26 00:37Tempo de Alocacao Sobreprovisionada (TASo) 00:27 00:31Tempo de Alocacao Transitoria (TAT) 01:03 00:59Total de Recursos Alocados (maquinas virtuais) 132 102Total de Recursos Alocados Estabilizado (TRAE) 54 42Total de Recursos Alocados Subprovisionados (TRASu) 47 36Total de Recursos Alocados Sobreprovisionados (TRASo) 31 24

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

50

Page 9: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

todas as metricas de tempo possuıram valores percentuais em relacao ao tempo total doexperimento proximos para os dois experimentos: 84% e 88% (TAE), 3% e 2% (TASu),2% e 2% (TASo), e 8% e 5% (TAT). Isto indica uma similaridade nos experimentos.

Estabilidade nao necessariamente implica em atendimento do SLA. Um valor altopara TAE deve ser analisado em conjunto com outros aspectos. O limite superior definidopara SLA foi 90%, e ocorreram algumas violacoes. Isto indica que a capacidade de re-cursos atingiu o limite. Se houvessem mais recursos, os graficos de alocacao teriam maisdegraus, correspondendo a alocacoes e desalocacoes de maquinas virtuais. As metricasTRASu e TRASo aumentariam e TRAE diminuiria. Consequentemente TASu e TASoprovavelmente seriam maiores. Diferente da metrica TAE, cujo valor e maior que TASu,TASo e TAT, a metrica TRAE mostra que um ambiente pode ter grandes intervalos comalocacao estavel com poucos recursos. Quanto maior a variacao na media de consumo deCPU, maior a adicao ou remocao de recursos no ambiente. Apesar que no experimento1 foram alocados mais recursos as operacoes de scaling up e scaling down, na media osvalores foram bem proximos. O ideal e que quanto maior a quantidade de intervalos emestado de alocacao subprovisionada e sobreprovisionada, maior a capacidade do ambienteem se adaptar as demandas impostas. Os valores medios para TRASu, TRASo e TRAEforam bem proximos nos dois experimentos, indicando similaridade nos comportamentos.

Para uma avaliacao mais completa, as metricas Elasticidade de Scaling UP e Elas-ticidade de Scaling Down, propostas por [Herbst et al. 2013] foram calculadas. Estasmetricas avaliam a velocidade na qual um ambiente realiza essas operacoes. Os doisexperimentos obtiveram valores bem semelhantes. A velocidade de Scaling Up para osdois experimentos foi de 0,03 e 0,01 respectivamente, e de Scaling Down 0,04 e 0,02. Oexperimento 1 e um pouco mais veloz que experimento 2, sendo um pouco mais efici-ente. Porem na pratica a diferenca e numericamente quase insignificante. Observando osgraficos de alocacao percebe-se que os momentos em que ocorrem alocacao de recursossao bem parecidos em termos de duracao e utilizacao de recursos.

A analise de desempenho muitas vezes depende da carga de trabalho utilizada naaplicacao, tendo impacto direto sobre o ambiente. Um desafio para ambientes experimen-tais e projetar uma carga de trabalho que represente a realidade de um provedor, devidoa caracterıstica dinamica de cargas de trabalhos reais. Um estudo do comportamento dascargas de trabalho, atraves de metodos estatısticos, predicao, natureza das aplicacoes eusuarios pode auxiliar no projeto. Como os dois experimentos utilizaram o mesmo ambi-ente, a carga de trabalho foi o principal elemento a provocar a diferenca nos resultados.

4. Trabalhos RelacionadosAlguns trabalhos na literatura desenvolveram aplicacoes e frameworks para operacao emambientes de Computacao em Nuvem. Outros propuseram abordagens e metodologiaspara a realizacao de analise de desempenho em Computacao em Nuvem. Esta secaodiscute alguns trabalhos correlatos ao framework proposto. Aqui eles estao organizadosem (i) frameworks, (ii) benchmarks, e (iii) metodologias para avaliacao de desempenhoem nuvens computacionais.

No que concerne os frameworks e aplicativos para desempenho em nuvens, des-tacamos o C-METER [Yigitbasi et al. 2009], um framework portavel, extensıvel, comgeracao e submissao de cargas de trabalho sinteticas. Seguindo um princıpio de ciclo de

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

51

Page 10: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

vida autoadaptavel com gerenciamento autonomico, outro framework que merece desta-que e o LoM2HiS [Emeakaroha et al. 2010], cujo objetivo e mapear metricas de infraes-trutura (IaaS) para metricas de usuario (SaaS), visando deteccao de quebras de SLA.

Dentre o conjunto de trabalhos sobre benchmarks, [Sobel et al. 2008] propu-seram CloudStone, um benchmark de aplicacoes web 2.0 para medir o custo mo-netario usuario/mes. O CloudGauge foi apresentado por [El-Refaey e Rizkaa 2010]para virtualizacao em Nuvens com o objetivo de medir cargas de trabalho dinamicas,enquanto o MalStone e voltado para desempenho em aplicacoes orientadas a CPU[Bennett et al. 2010]. [Li et al. 2010] compararam o desempenho entre provedores denuvem mediante o benchmark CloudCMP, considerando aspectos de elasticidade, rede,custo e armazenamento, avaliados de maneira sistematica.

Criterios a serem utilizados na avaliacao da elasticidade sao descritos em[Herbst et al. 2013], tais como: processos de adaptacao para escalabilidade autonomica;recursos escalaveis para o processo de adaptacao; variacao da quantidade de recursos alo-cados; e limite superior da quantidade de recursos que podem ser alocado. Alem disso,metricas foram propostas para a medicao da elasticidade baseadas em velocidade e pre-cisao. E um trabalho motivacional, nao havendo experimentos, porem propoe as metricasElasticidade de Scaling UP e Elasticidade de Scaling Down, especıficas para elasticidade,baseadas em tempos de operacoes e recursos.

Algumas propostas para quantificar elasticidade sao discutidas em[Islam et al. 2012], considerando SLA e penalidades em caso de nao antendimentodo servico, atraves de modelos matematicos. Uma abordagem para a medicao da elasti-cidade de uma nuvem e proposta em [Shawky e Ali 2012], baseada no conceito de stressda nuvem (taxa de recursos requerida pela quantidade de recursos alocados), e tensaoda nuvem (variacao nos recursos antes e depois de operacoes de escalonamento). Ummodelo matematico foi proposto em [Costa et al. 2011] para representar um provedorde IaaS, e seus experimentos simularam aplicacoes Bag of Tasks (BoT) em relacao aoslimites impostos por provedores na execucao deste tipo de aplicacao.

Em geral, o projeto de experimentos nao e claro. Muitos trabalhos nao infor-mam detalhes dos experimentos, que auxiliam em sua replicacao, assim como deta-lhes da instalacao e configuracao dos frameworks e benchmarks disponibilizados. Ou-tra deficiencia comum em trabalhos e que nao e disponibilizada uma metodologia para a

Tabela 3. Comparacao entre trabalhos relacionados e tecnica do experimentoutilizada (T): medicao (M), simulacao (S) e modelagem analıtica (MA)

Trabalho Objetivo TCloudStone [Sobel et al. 2008] Benchmark para aplicacoes web 2.0 MC-METER [Yigitbasi et al. 2009] Framework para analise de desempenho em nuvem MCloudGauge[El-Refaey e Rizkaa 2010]

Benchmark para virtualizacao em nuvem e medicaode cargas de trabalho dinamicas

M

LoM2HiS [Emeakaroha et al. 2010] Framework para mapear metricas de nıvel mais baixopara SLA para deteccao de violacoes

S

MalStone [Bennett et al. 2010] Benchmark para medir desempenho de computacaointensiva de dados

M/S

CloudCMP [Li et al. 2010] Comparar desempenho entre provedores deComputacao em Nuvem

M

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

52

Page 11: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

utilizacao das ferramentas para experimentos. Muitas vezes existem poucos detalhes ounao ha uma abordagem sistematica para sua utilizacao, dificultando a analise de desem-penho. A Tabela 3 descreve alguns trabalhos com diferentes nıveis de detalhamento doprojeto de experimento, o que nao quer dizer que nao seguem uma metodologia ou naoha projeto de experimentos, sendo em geral muito bem escritos.

O framework proposto procura estabelecer uma metodologia para a realizacao deanalise de desempenho em ambientes de Computacao em Nuvem de maneira sistematica,com foco em elasticidade. Ele destaca o projeto dos experimentos, das cargas de tra-balho, coletas e medicoes. Nao define uma arquitetura, mas sugere fortemente aspectosferramentais que influenciam diretamente em seus componentes. Por ser um frameworkconceitual, ele e generico e independente de tecnologia. Como em alguns trabalhos rela-cionados, a ideia e ser extensıvel e adaptavel, porem projetando a avaliacao de maneiraflexıvel e reutilizavel.

5. ConclusaoEste trabalho teve como objetivo avaliar a elasticidade em ambientes de Computacao emNuvem de maneira metodologica atraves de um framework conceitual. De maneira geral,o framework permitiu a realizacao de analise de desempenho em uma nuvem computaci-onal satisafatoriamente atraves de dois experimentos, atendendo aos objetivos.

A contribuicao central deste artigo e possibilitar, que uma nuvem sob analise te-nha sua elasticidade avaliada de maneira sistematizada, considerando metricas de desem-penho. Como contribuicoes secundarias, propomos um conjunto de microbenchmarkspara geracao de cargas de trabalho sinteticas e uma ferramenta de visualizacao grafica demetricas coletadas de uma nuvem computacional. Mesmo nao sendo avaliado o real ga-nho proporcionado pela utilizacao do framework, entende-se que a organizacao e estruturaproporcionados sao uteis na avaliacao de desempenho.

Ainda e necessario o detalhamento de cada atividade do framework, para que sejamais intuitivo o objetivo e a importancia de cada atividade. A repeticao de sua utilizacaopermitira um refinamento das atividades, e consequentemente melhoria na sua execucao.

Como trabalhos futuros, pretendemos utilizar outros mecanismos de elasticidade(horizontal e vertical), outras metricas e estrategias de computacao autonomica, expandira ferramenta de visualizacao e os microbenchmarks. Tambem pretende-se realizar umprojeto da carga de trabalho que se aproxime de situacoes reais, e estender a validacao doframework em aplicacoes e ambientes com aplicacoes reais (e-science, web, aplicacoesbiomedicas), assim como provedores comerciais (por exemplo Amazon Web Services eHP Cloud), e nuvens computacionais hıbridas.

ReferenciasBennett, C., Grossman, R. L., Locke, D., Seidman, J., and Vejcik, S. (2010). Malstone:

towards a benchmark for analytics on large data clouds. In Proceedings of the 16thACM SIGKDD international conference on Knowledge discovery and data mining,KDD ’10, pages 145–152, New York, NY, USA. ACM.

Costa, R., Brasileiro, F., Lemos, G., and Mariz, D. (2011). Sobre a amplitude da elastici-dade dos provedores atuais de computacao na nuvem. In XXIX Simposio Brasileiro deRedes de Computadores e Sistemas Distribuıdos (SBRC 2011).

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

53

Page 12: Uma Proposta de Framework Conceitual para Analise de ... · Uma Proposta de Framework Conceitual para Analise de´ Desempenho da Elasticidade em Nuvens Computacionais Emanuel F. Coutinho

Coutinho, E., Gomes, D. G., and Souza, J. D. (2013a). An analysis of elasticity in cloudcomputing environments based on allocation time and resources. In LATINCLOUD2013, Maceio, Brazil.

Coutinho, E., Sousa, F. R. C., Gomes, D. G., and Souza, J. D. (2013b). Elasticidade emcomputacao na nuvem: Uma abordagem sistematica. In XXXI Simposio Brasileiro deRedes de Computadores e Sistemas Distribuıdos (SBRC 2013) - Minicursos.

Cruz, F. (2013). Scrum e PMBOK unidos no Gerenciamento de Projetos. Brasport Livrose Multimıdia Ltda.

El-Refaey, M. and Rizkaa, M. (2010). Cloudgauge: A dynamic cloud and virtualiza-tion benchmarking suite. In Enabling Technologies: Infrastructures for CollaborativeEnterprises (WETICE), 2010 19th IEEE International Workshop on, pages 66–75.

Emeakaroha, V., Brandic, I., Maurer, M., and Dustdar, S. (2010). Low level metrics tohigh level slas - lom2his framework: Bridging the gap between monitored metrics andsla parameters in cloud environments. In High Performance Computing and Simulation(HPCS), 2010 International Conference on, pages 48–54.

Herbst, N. R., Kounev, S., and Reussner, R. (2013). Elasticity in cloud computing: Whatit is, and what it is not. In Proceedings of the 10th International Conference on Auto-nomic Computing(ICAC 2013), San Jose, CA, pages 23–27. USENIX.

Islam, S., Lee, K., Fekete, A., and Liu, A. (2012). How a consumer can measure elasticityfor cloud platforms. In Proceedings of the 3rd ACM/SPEC International Conferenceon Performance Engineering, ICPE ’12, pages 85–96, New York, NY, USA. ACM.

Kephart, J. O. and Chess, D. M. (2003). The vision of autonomic computing. Computer,36(1):41–50.

Li, A., Yang, X., Kandula, S., and Zhang, M. (2010). Cloudcmp: comparing publiccloud providers. In Proceedings of the 10th ACM SIGCOMM conference on Internetmeasurement, IMC ’10, pages 1–14, New York, NY, USA. ACM.

Rego, P., Coutinho, E., Gomes, D., and De Souza, J. (2011). Faircpu: Architecture for al-location of virtual machines using processing features. In Utility and Cloud Computing(UCC), 2011 Fourth IEEE International Conference on, pages 371–376.

Shawky, D. M. and Ali, A. F. (2012). Defining a measure of cloud computing elasticity.In Systems and Computer Science (ICSCS), 2012 1st International Conference on.

Sobel, W., Subramanyam, S., Sucharitakul, A., Nguyen, J., Wong, H., Klepchukov,A., Patil, S., Fox, O., and Patterson, D. (2008). Cloudstone: Multi-platform, multi-language benchmark and measurement tools for web 2.0.

Tordsson, J., Montero, R. S., Moreno-Vozmediano, R., and Llorente, I. M. (2012). Cloudbrokering mechanisms for optimized placement of virtual machines across multipleproviders. Future Generation Computer Systems, 28(2):358 – 367.

Yigitbasi, N., Iosup, A., Epema, D., and Ostermann, S. (2009). C-meter: A frameworkfor performance analysis of computing clouds. In Cluster Computing and the Grid,2009. CCGRID ’09. 9th IEEE/ACM International Symposium on, pages 472–477.

Anais do XII Workshop de Computação em Clouds e Aplicações - WCGA 2014

54