• Nenhum resultado encontrado

Uma arquitetura para monitoramento e medição de desempenho para ambientes virtuais

N/A
N/A
Protected

Academic year: 2017

Share "Uma arquitetura para monitoramento e medição de desempenho para ambientes virtuais"

Copied!
76
0
0

Texto

(1)

UMA ARQUITETURA PARA MONITORAMENTO

E MEDIÇO DE DESEMPENHO PARA

AMBIENTES VIRTUAIS

(2)

Instituto de Ciênias Exatas

Programa de Pós-Graduação em Ciênia da Computação

UMA ARQUITETURA PARA MONITORAMENTO

E MEDIÇO DE DESEMPENHO PARA

AMBIENTES VIRTUAIS

Dissertação apresentada ao Curso de

Pós-Graduação em Ciênia da Computação da

UniversidadeFederaldeMinasGeraisomo

requisitoparialparaaobtençãodograude

Mestre emCiênia daComputação.

FABRÍCIO BENEVENUTO DE SOUZA

(3)

Ambientes virtuais têm experimentado um renovado interesse por vários motivos,

tais omoisolamentode apliações, onsolidação de servidores eompartilhamentode

reursos. A implantação de um servidor virtual permite a onsolidação de múltiplos

sistemas operaionaiseapliaçõesemuma úniaplataformade hardware, reduzindo o

número de servidoresde uma empresa, aumentando a utilizaçãode reursos,

simpli-andoaorganizaçãode infraestrutura,reduzindoustosdegereniamentoepermitindo

a riação de um ambienteapaz de se adaptara mudanças na arga das apliações.

Entretanto, antes migrar apliações de servidores reais para ambientes virtuais é

neessárioentenderomoseráoomportamentodessasapliaçõesnessenovoambiente.

Odesempenho das apliaçõesemambientes virtuaispodediferironsideravelmentedo

seu desempenhoemsistemasreais devido àsinteraçõesom aamadade software que

simulaohardware e om outras máquinasvirtuais. Alémdisso, a onguração de um

ambiente virtual tem um impatosigniativo nodesempenho dosistema. Por

exem-plo, no ambiente virtual Xen, dispositivos de E/S são exeutados em uma máquina

virtual privilegiada hamada de domínio de drivers isolados (IDD). Uma esolha de

onguração que afeta ritiamente o desempenho do sistema é a aloação de CPUs

para várias máquinas virtuais e IDDs em uma máquina multiproessada. Nesse

on-texto, entender as fontes do usto da virtualização e quantiar esse usto é ruial

para a implantaçãoe onguraçãode apliaçõesemambientes virtuais.

Esta dissertação apresenta duas ténias para medir e monitorar desempenho em

(4)

desem-raterístias das apliaçõese alternativasde onguração. Osresultados mostramque

o proessamento de E/S no Xen requer de três a ino vezes mais proessamento de

CPUnosistemavirtualdoquenoambientereal. Alémdisso,mostramosqueataxade

proessamentode rede doIDD élimitadapelaapaidadede uma úniaCPU, mesmo

ommúltiplosproessadores. Foiobservadaumaquedanodesempenhodasapliações,

que hega aquase 18%, quando máquinasvirtuais ompartilhamas mesmasahes de

proessadores. Essas observações são importantes para a onguração de ambientes

(5)

Virtual environments are experiening a renewed interest due to several reasons,

suh as isolation, server onsolidation and resoure partitioning. The deployment of

a virtual server allow the onsolidation of multiple operational systems and

applia-tions on a single hardware platform, reduing the number of servers of an enterprise,

inreasing resoureutilization,simplifyinginfrastruture organization,reduing

mana-gementosts and allowingthe reationof anenvironment ableto adapttohanges on

appliation workloads.

However, beforemigratingappliationsfromphysialmahines tovirtualized

envi-ronments,one needs tobe able to understand the behavior of the appliationson the

new environment. The performane of suhappliations onvirtual environmentsmay

dieronsiderablyfromtheirperformane onrealsystemsdue tointerationswiththe

software layerwhihsimulatesthe hardware and due tothe needof sharingsomewith

other virtual mahines. Moreover, the onguration of a virtual environment has a

signiant impat on system performane. For instane, in the Xen virtual

environ-ment, I/O devie drivers exeute in privileged virtual mahines alled isolated driver

domains (IDDs). A onguration hoie that ritially aets system performane is

the assignment of multiple virtual mahines and IDDs tothe CPUs in a

multiproes-sor server. In this ontext, understanding the soures of virtualization overhead and

quantify this overhead is ruial for the deployment and ongurationof appliations

on virtual environments.

(6)

tionsexeutingonthe Xenvirtualenvironmentasafuntionofappliationparameters

and ongurationhoies. Our results showthat I/O proessing inXen requiresthree

tovetimestheCPUapaity asinLinux. Furthermore,weshowthatthethroughput

of an IDD is limited by the proessing apaity of a single CPU, even with a

multi-proessor IDD. Wealso observed a performane overhead of almost18% when virtual

(7)
(8)

Agradeçoaos meus pais e minha irmã,que souberam uidar direitinhodoaçula e

onaramemmeussonhos. Obrigadoporfazeremtudoissopossível. AoVZea,àVó

Amélia e a todos os familiares que toreram pelo meu suesso. Gostaria de agradeer

atodaafamíliadaCaroledizer queémuito bomfazerparte dafamíliade voês. Aos

meus grandes amigos Ti,Chiquinhoe Dandan. Obrigado por voês estarem presentes

em todos os momentos importantes da minha vida e que a nossa amizade ontinue

sempre.

Nestes dois anos de mestrado, tenho erteza que levo omigo grandes amizades

para a vida toda, espeialmentedo pessoal doe-speed. Gostariade agradeer aoLhg,

Robert, Fernando, Fabiano, Tassni, Barra, Flávia, Brut, Pereira, Adriano, Leosilva,

Raquel, Coutinho, Mihele,Marisa, Vanessa,Krusty,Ítalo,Ismael, Diêgo,Diniz,Gms,

Adrianov, César, Matheus, Damaedo, Vitorino e Makish. Gostaria de agradeer ao

pessoaldaminhaturmade graduação(grad001). Eutivemuita sortedeter feitoparte

de uma turmatão legal quantoesta. Que esta uniãoe amizadenuna se aabe.

A todos queestiveram envolvidos om amaratona de programaçãoda ACM.

Cer-tamente, essa foi uma das experiênias mais divertidas da graduação, grande parte

devido às pessoas que estiveram envolvidas. Foi um prazer ser ompetidor por três

anos eum orgulho ser ténio.

Aos professores Wagner Meira e Dorgival, responsáveis pelo empurrão iniial

du-rante agraduação e,aos meusorientadores, VirgílioeJussara, pelos inentivos,

(9)

três meses de internship na HP em Palo Alto, uma oportunidade inrível que tenho

que agradeer imensamente ao Virgílio. Gostaria de agradeer a todas as pessoas

envolvidas nointernship e que tornaram essa experiêniano exterior mais divertida e

agradável. Emespeial, gostaria de agradeer aos meus mentores na HP José Renato

Santos, Yoshio Turner e John Janakiraman, aos outros interns e ao Ron e à Beth, os

donos do studio onde morei.

Porm,agradeço ededioesta onquistaàminhaesposa, Carol,porestarpresente

em todos os momentosimportantes. Voê aompanhou de perto ada situação difíil

ou feliz, aonselhou, me aalmou e toreu para meu suesso. Devo tudo a voê! A

(10)

1 Introdução 1

1.1 Virtualização . . . 1

1.2 Benefíios e Apliaçõesde Ambientes Virtuais . . . 4

1.3 Motivação doTrabalho . . . 6

1.4 Contribuições . . . 7

1.5 Organização doTrabalho . . . 9

2 Trabalhos Relaionados 10 2.1 Evoluçãoda Virtualização . . . 10

2.2 Desempenho de Sistemas Virtuais . . . 11

2.3 Apliaçõesde Ambientes Virtuais . . . 13

3 Sistemas Virtuais 14 3.1 Xen . . . 14

3.2 Modelode E/S do Xen . . . 15

3.3 Implantação de Apliaçõesemum AmbienteVirtual. . . 18

4 Monitoramento e Medição de Desempenho em Servidores Virtuais 20 4.1 Medição e Monitoramento . . . 20

4.2 Ténias de Medição eMonitoramento . . . 21

4.2.1 MonitoramentoCentralizado . . . 22

4.2.2 MonitoramentoDistribuído . . . 23

(11)

4.3.2 Outras Métrias de Desempenho emAmbientes Virtuais . . . . 30

5 Estudo de Caso 32 5.1 Congurando um ServidorVirtual . . . 32

5.2 Metodologia Utilizada . . . 34

5.2.1 Ambiente experimental . . . 34

5.2.2 Conjuntos de Testes . . . 35

5.2.3 Ferramentas Utilizadas . . . 37

6 Resultados 41 6.1 Proessamento de E/S de rede noXen . . . 41

6.2 Entendendo o Proessamento de E/S no IDD . . . 44

6.3 Congurando um ambiente virtual . . . 47

6.3.1 Dividindo aarga de um NIC emduas CPUs noIDD . . . 47

6.3.2 Dividindo aarga de dois NIC emduas CPUs noIDD . . . 50

6.4 Entendendo Interferênia entre Máquinas Virtuais . . . 52

7 Conlusões e Trabalhos Futuros 56

(12)

1.1 Visãogeral de um sistemaque utiliza para-virtualização . . . 3

3.1 Visãogeral dos diferentes modelosde E/S doXen . . . 16

3.2 Visãogeral do modelode E/S atual doXen . . . 17

4.1 Arquiteturapara medição de desempenho distribuída . . . 24

4.2 Diferentes ambientes de exeução de apliações . . . 25

5.1 Diferentes onguraçõespara os mesmosreursos . . . 33

5.2 Desempenho doXenoprof e doOprole . . . 39

6.1 UtilizaçãodeCPUparaLinuxeXenparadiferentestaxasdeproessamento etamanhos de paotes . . . 42

6.2 TaxadeproessamentoderedeparaLinuxeXenàmedidaqueaumentamos o númerode onexões/s . . . 43

6.3 Utilizaçãode CPU para Linux e Xenà medida que aumentamos o número de onexões/s . . . 43

6.4 Utilizaçãode CPUno IDD x paotesde dados/s. . . 45

6.5 Aks/paotes de dadosx paotesde dados/s . . . 46

6.6 Assoiação de interrupçõesde 1NICem duas CPUs no IDD . . . 48

6.7 Avaliaçãode desempenhode duas onguraçõesparaum NICeduas CPUs noIDD . . . 49

(13)

noIDD . . . 52

6.10 Tempo de exeução relativo ao Linux para o onjunto de testes de CPU

para três enários . . . 54

6.11 Contagem de falhas de ahe relativa ao Linux para diferentes enários de

(14)

5.1 Caraterístias daCarga Web . . . 36

(15)

Introdução

Esteapítulotemporobjetivointroduzirooneitodevirtualização,suasapliações

e áreas de atuação. Além disso, apresentamos a motivação e prinipais ontribuições

do trabalho. Para onluir, apresentamos uma organização dos demais apítulos da

dissertação.

1.1 Virtualização

Reentemente, ambientes virtuais têm experimentado um renovado interesse por

vários motivos, taisomo isolamentode apliações, onsolidação de servidores e

om-partilhamento de reursos. O surgimento de ambientes virtuais, omo o Xen [9℄ e

o Denali [47℄, máquinas virtuais omeriais [13℄ e o desenvolvimento de suporte de

hardware para virtualização [22℄ são exemplos deste ressurgimento de interesse pelo

assunto.

Virtualizaçãopodeser entendidaomo umaténia quedivideosreursos do

om-putador emmúltiplosambientes deexeuçãoomoobjetivode implantarnovas

teno-logias, riando um nível de indireção ou uma amada de abstração entre dispositivos

físioseapliações. Noiníiodosanos70,virtualizaçãoeraum temademuitointeresse

da indústria e das universidades. A prinipal motivação da virtualização nessa époa

(16)

de mainframes. Entretanto, nos anos 80,o ustodo hardware aiu onsideravelmente,

fazendo om que grande parte das neessidades omputaionais de uma organização

fossem migradasde grandes mainframes para um onjuntode miro-omputadores. A

motivaçãodavirtualização foidesapareendoe,om ela, grandepartedoinvestimento

omerial. A adoção de miro-omputadores assoiada ao uso de redes de

omputa-dores nos anos 90provoou o surgimentode diferentes paradigmaspara a distribuição

de omputação, tais omo sistemas liente-servidor e par-a-par (peer-to-peer). Estes

novos tipos de sistema trouxeram diversos desaos e problemas inluindo onança,

segurança, aumento no usto e omplexidade de administração, espaço para

armaze-namentode máquinas e onsumo de energia.

O reente renasimento do uso de ténias de virtualização omo produtos para

máquinas lientes e servidorasestá assoiado àabordagemdessas questões nesse novo

enário da omputação. A implantação de um ambiente virtual em um servidor

per-mite a onsolidação segura e exível de múltiplos sistemas operaionais e apliações

em uma únia plataforma de hardware. Isto ajuda a reduzir o número de servidores

de uma empresa, aumentar autilizaçãode reursos, simpliaraorganizaçãode

infra-estrutura, além de reduzirustos de gereniamento. Além disso, um ambientevirtual

pode permitirgereniamentodinâmiodos reursosde hardware deformaaseadaptar

a mudanças naarga das apliações.

Podemosdifereniartrêstiposbásiosdevirtualizaçãoonformeaténiautilizada:

virtualizaçãononíveldokernel,avirtualizaçãoompletaoupuraeapara-virtualização.

O primeiro onsiste em virtualizar a amada do sistema operaional [43℄. Podemos

entender este proesso omo a divisão de um únio servidor em várias partições

om-putaionais (vservers), que ompartilham o mesmo kernel. Em sistemas Unix, esta

ténia se assemelha a uma extensão avançada do meanismo de hroot. No aso da

virtualização pura, é possível riar máquinas virtuais que exeutam sistemas

opera-ionais ompletos, sem nenhuma modiação no sistema operaional. Este tipo de

(17)

de apliações no topo de um ambiente virtual [46℄. A máquina virtual e seu sistema

operaionalpossuemprivilégiosde usuário,oqueausaumagrandediuldadena

exe-uçãodedeterminadasoperações, degradandoodesempenhodasapliaçõesexeutadas

nesteambiente. AlgunssistemasquesedestaamnestaáreainluemoVMWare [41℄,o

QEMU [35℄eoVirtualPC[39℄ daMirosoft. Napara-virtualizaçãoasmáquinas

virtu-ais exeutam sistemas operaionais modiados para uma arquitetura espeial. Estas

alteraçõestornammaisfáildiversasoperaçõesdosistemavirtual,oqueontribuipara

que esta arquitetura alaneum melhor desempenho do que a arquitetura que utiliza

virtualização pura. No aso de servidores, apara-virtualizaçãose torna bastante

on-veniente por riar um ambiente virtual apaz de partiionar os reursos doservidor e

isolar apliações om uma perda de desempenho tolerável [17℄. Alguns sistemas que

utilizam esta arquitetura são o Xen [9℄, oDenali [47℄ e oUML [38℄.

SO

E/S, Disco (Virtual)

CPU, Memória

Aplicações

SO

E/S, Disco (Virtual)

CPU, Memória

Aplicações

SO

E/S, Disco (Virtual)

CPU, Memória

Aplicações

Monitor de Máquinas Virtuais (VMM)

Plataforma de Harware: CPU, Memória, E/S, Disco

Figura 1.1: Visãogeral de um sistemaque utiliza para-virtualização

Agura1.1mostraumavisãogeral deum sistemapara-virtualtípio. A

organiza-ção dosistemaérealizadaatravésde múltiplasamadas. Naamadamaisbaixatemos

o hardware da máquina físia onde o ambiente virtual é exeutado. No aso de

ser-vidores, osreursos são em geral múltiplos proessadores, múltiplas interfaes de rede

(NICs - Network Interfae Card), vários disos rígidos e grandes quantidades de

(18)

de software possui privilégios de aesso ao hardware para gereniar as requisições de

múltiplossistemasoperaionais hospedadosnas máquinasvirtuais. Ossistemas

opera-ionais e apliaçõesexeutados neste ambientenão sabemque estão em um ambiente

ompartilhado. Sendo assim, é possívelaloar reursos (ex. proessamento, memória,

E/S, diso)paraadamáquinavirtualde formaaisolarumaapliaçãodaoutra

onso-lidando diversos serviços emuma mesma plataformade hardware. OVMM onsegue

enapsular umapilhainteirade exeução, inluindoosistemaoperaionaleseu estado

atual, de forma que uma máquina virtual pode ser opiada e transferida para outras

plataformas ouambientes.

1.2 Benefíios e Apliações de Ambientes Virtuais

Váriasempresasestãoinvestindoemsoluçõeseserviçosqueenvolvemvirtualização.

Comoexemplo,umaempresahamadaEMCanuniouaompradaVMWare[41℄,uma

das mais famosas empresas que atua na área de sistemas virtuais, por635 milhõesde

dólares. Reentemente, a HP lançou um software hamado SoftUDC [23℄, que

onse-gue agregar, através de virtualização, servidores, redes e sistemas de armazenamento

em uma únia entral de gereniamento. Outras empresas omo a Mirosoft e a IBM

tambémestão investindoemsuas soluçõespara ambientes virtuais. Alémdisso, existe

um esforço por parte da Intel para a riação hardware espeial para ambientes

virtu-ais para permitir que sistemas operaionais não preisem de modiações para serem

exeutados em ambientes para-virtuais. [22, 14℄. Tanto investimento e pesquisa sobre

virtualização édevidoaum onjuntode vantagensqueambientes virtuaisofereem. A

seguir sumarizamos osprinipaisbenefíiose apliações de sistemas virtuais.

Consolidação de servidores: Máquinas virtuais podem ser utilizadas para

onsolidar vários servidores sub-utilizados em pouas máquinas ou até mesmo

em uma únia máquina. Isto pode trazer diversas eonomias para as empresas

(19)

om gereniamento e administração dainfraestrutura dos servidores. Como um

exemplo, a VMWare arma que o usto para a manutenção de servidores pode

ser reduzido om o uso de virtualização e onsolidação em era de 29% a 64%

do total de gastos om manutenção [40℄. Além disso, a VMWare ainda aponta

uma redução de quase 20% emliençasde softwares.

Isolamento: Máquinas virtuais podem isolar o que elas exeutam, riando um

ambiente apaz de onter a propagação de erros e falhasdas apliações e evitar

que uma apliaçãointerrana exeuçãoou nodesempenho de outras apliações

que rodam namesma máquina.

Segurança: Máquinasvirtuaispodemserutilizadasparaproversegurança,omo

por exemplo para riar um ambiente isolado para a exeução de apliações não

onáveis. Empresas quedesenvolvemanti-víruseanti-spyware utilizam

virtuali-zação parariaruma rede representativade máquinassem segurançaonetadas

àInternetpara poderemmonitoraredesobrirnovasameaçasnarede[42℄. Além

disso, um ambiente virtual pode ser utilizado para onstruir plataformas

segu-ras de omputação. Um exemplo disso é o ambiente virtual onstruído em [4℄.

Nesse ambiente, diversas apliações são automatiamente baixadas da Internet

e exeutadas na tentativa de identiar softwares de omportamento maliioso

presentes na Web. Nesse aso, o uso de máquinas virtuais oferee não só

faili-dade esegurança, mastambémpermiteaparalelizaçãodouxo de exeuçãodos

experimentos om o uso de mais de uma máquina virtual.

Migração de serviços: Umamáquinavirtualpode servistaomoumaamada

de software que enapsula todo o estado do sistema em exeução. Isto torna

mais simples a migraçãode apliações entre máquinas ou proessadores, já que

o estado damáquina virtual, do sistemaoperaional edas apliaçõespodem ser

salvos,examinados,modiadosereiniiados. Alémdisso, virtualizaçãotambém

(20)

sistema.

Portabilidade de hardware: Ambientes virtuais podem ser utilizados para

proverailusãode determinadohardware, omodisos SCSIoumúltiplos

proes-sadores. Apliações que não foram desenvolvidas para determinada plataforma

dehardwarepodemutilizar-sedeumamáquinavirtualparaexeutaremno

hard-ware adequado. Virtualização também pode ser utilizada para simular redes de

omputadores independentes emumamesmamáquinaoumesmoexeutar

múlti-plossistemasoperaionaisdiferentessimultaneamente. Alémdisso,umamáquina

virtualpodeser ummeiodeproverompatibilidadebinária,permitindoque

apli-ações ompiladas para uma arquitetura espeía sejam exeutadas em outros

tipos de hardware.

Ambiente de testes: Máquinas virtuais forneem um exelente ambientepara

testes, depuração e monitoramentode desempenho. Em um ambiente virtual é

possível riar diferentes enários de testes, omo diferentes hardwares, sistemas

om reursos limitadose sistemas que utilizam ontratos om garantiasde

qua-lidade de serviço. Nesse ontexto, máquinas virtuais podem ser utilizadas para

testar o omportamentode uma determinada apliaçãoemsituaçõesarbitrárias

ouriargrandes plataformasdemáquinasmonitoradas,podendotambémserútil

para ambientes de pesquisa e desenvolvimento.

1.3 Motivação do Trabalho

Uma organização típia de TI destina boa parte de seus gastos para gereniar

sistemas existentes e suas apliações [14℄. Uma das fontes deste usto é o grande

númerode servidoressub-utilizadosnoentrode dados. Alémdisso,odesempenhodos

servidores aumentou onsideravelmente nos últimos anos. Virtualização surge omo

(21)

Entretanto, antes de migrar apliações de ambientes não virtuais para ambientes

virtuais é neessário entender omo será o desempenho dessas apliações nesse novo

ambiente. O desempenho das apliações em ambientes virtuais pode diferir

onside-ravelmente doseu desempenho em ambientes não virtuais devido às interaçõesom a

amada de software que simulao hardware e om as outras máquinas virtuais. Além

disso,oustodedesempenhodevirtualizaçãopodevariardeformasigniativa

depen-dendo daonguração doambiente virtual. Porexemplo, naversão atualda máquina

virtual Xen, dispositivos de E/S exeutam em uma máquina virtual privilegiada

ha-mada de domíniode drivers isolados ouIDD (Isolated Driver Domain). Uma esolha

de onguraçãoqueafetaritiamenteodesempenhodosistemaéaaloaçãode CPUs

a várias máquinas virtuais e IDDs emuma máquina multiproessada.

Nesse ontexto, entender as fontes dos ustos de desempenho da virtualização e

quantiar este desempenho éruial para aimplantaçãoeonguração de apliações

em ambientes virtuais. Esta dissertação apresenta um levantamento de ténias para

medição e monitoramento de desempenho em ambientes virtuais e, através de um

estudode aso,apresentaumaavaliaçãodedesempenhodoambientevirtualXenomo

uma função das araterístiasdas apliaçõese alternativasde ongurações.

1.4 Contribuições

Esta sessão sumarizaas prinipaisontribuiçõesdeste trabalho.

Apresentamosum levantamentode ténias paramedir emonitorardesempenho

em ambientes virtuais. Apesar de enfatizar o ambiente virtual Xen, as ténias

apresentadas podem ser adaptadas para qualquer sistema virtual baseado em

para-virtualização.

Apresentamos um levantamento dos prinipaisaspetos que devem ser

(22)

Apresentamos uma avaliação de desempenho do ambientevirtual Xen om foo

nosparâmetrosdeonguraçãoquesãoruiaisparaaimplantaçãodeapliações

exeutando em ambientes virtuais. Foram exploradas as prinipais

araterísti-as do tráfego gerado pelas apliaçõesque podem ser úteis para aloar reursos

e automatizaraonguraçãode um ambientevirtual. Alémdisso,apresentamos

um estudo sobre a interferênia que máquinas virtuais podem ausar entre si

quando elas ompartilham os mesmos reursos omo por exemplo as ahes do

proessador. Quando duas ou mais máquinas virtuais ompartilham o mesmo

proessador, uma máquina virtual poluias ahes para a próxima máquina

vir-tual, o que pode ausar uma degradação no desempenho das apliações. Como

onlusão levantamosnovasquestõesdedesempenho aindanãoinvestigadas pela

literatura.

Como um efeitoolateraldo trabalho, apresentamos umaavaliaçãode

desempe-nho do Xenoprof [49℄. O Xenoprof é uma ferramenta apaz de oletar amostras

de eventos de hardware no ambiente virtual Xen. Como utilizamos o Xenoprof

para medir desempenho, veriamos o impato que essa ferramenta pode ter

no desempenho do sistema. O Xenoprof foi primeiramenteproposto e utilizado

em [29℄, entretanto, aquele trabalho não disute seu impatono desempenho do

sistema.

OsresultadosmostramqueoproessamentodeE/SnoXenrequerdetrêsaino

vezes mais proessamentode CPU do sistema virtual quando omparado om o

Linux. Além do mais, mostramos que a taxa de proessamento de rede do IDD

é limitadopela apaidade uma únia CPU, mesmo em um IDD om múltiplos

proessadores. Foi observada uma queda no desempenho das apliações, que

hegou a quase 18% quando máquinas virtuais ompartilhamas mesmas ahes

de proessadores. Essas observações são importantes para a onguração de

(23)

1.5 Organização do Trabalho

O restante desta dissertação está organizado da seguinte forma. O próximo

apí-tulo apresentatrabalhos relaionadoseoapítulo3disuteasorigensdavirtualização,

aspetos do Xen e do modelo de E/S do Xen, neessários para o entendimento deste

trabalho. Oapítulo4disuteténias paramonitoramentoemediçãodedesempenho

de apliaçõesexeutadasnoXen. Oapítulo5 apresentaum estudode aso, onde

uti-lizamosasténiasdisutidaspara avaliarodesempenhode umambientevirtual. Esse

apítulo aindadesreveo ambienteexperimental utilizadobemomo asferramentas e

os onjunto de testes utilizadosna avaliação experimental. O apítulo6 apresenta os

resultados do estudo de aso e, nalmente, o apítulo 7 onlui o trabalho e oferee

(24)

Trabalhos Relaionados

Neste apítulo são disutidos trabalhos relaionados à virtualização, sua evolução

e áreas de atuação. Primeiramente, desrevemos trabalhos que deram origem à

vir-tualização e os primeiros ambientes virtuais que surgiram na déada de 60. Em

se-guida, disutimos os prinipais sistemas responsáveis pelo ressurgimento do interesse

em virtualizaçãoe disutimos alguns estudosde desempenho existentes sobre

ambien-tes virtuais. Finalmente, disutimos trabalhos sobre utility omputing e outras áreas

que usam omo base o oneito de virtualização.

2.1 Evolução da Virtualização

Os estudos e primeiras apliações de virtualização omeçaram a surgir em 1960,

tendo aIBMomo pioneiranaárea. Naquela époa, virtualizaçãoera vistaomouma

evoluçãodosestudossobretempoompartilhadoemultiprogramação[6,36℄esermou

quando a IBM lançou vários projetos que utilizavammáquinasvirtuais. Um dos mais

populares ambientes virtuais foi o VM/370. O VM/370 é um ambiente virtual que

introduziu o oneito de para-virtualização utilizada hoje nos sistemas Xen e Denali.

Este foi o primeiro sistema a implementar a idéia dariação de uma máquina virtual

de monitoramentoligeiramentemodiadaemrelaçãoaohardware,quefunionaomo

(25)

monitoraredestruirmáquinasvirtuais. Emrelaçãoaodesempenhodemáquinas

virtu-ais,Bardrealizouestudosusandomodelosanalítiosbaseadosemteoriadelas. Em[7℄

foi desenvolvidoum modeloanalítiopara oVM/370 para estimarmedidasde

desem-penho omo utilização de CPU omo uma função da arga imposta pelas apliações

exeutadas no ambientevirtual. Em [8℄, Bard desenvolveu uma ferramenta para

on-gurar sistemas que utilizam o VM/370 baseada em um modelo analítio que aeita

omo entrada a arga araterizada e estima o desempenho do sistema omo saída.

Reentemente, o estudo de desempenho de ambientes virtuais através de modelagem

analítia utilizandoteoriade las foi revisitado[28,10℄.

Nosanos90,virtualizaçãosetornoupopularnovamente, grandepartedevidoauma

empresa hamada VMWare [41℄, que lançou vários ambientes virtuais que dependem

ou não de alterações no sistema operaional. Com a retomada do estudo de

virtuali-zação e om a evolução do poder de proessamento das máquinas atuais e de outros

omponentes dehardware, surgiramoutrosprojetosenovossistemas. Dentre eles,dois

importantes ambientes virtuaissão o Denali[47℄ eoXen[9℄. Agrande diferençaentre

estes dois sistemaséqueosobjetivosdoXensão diferentes dos objetivosdoDenali. O

Denalifoiplanejadoparasuportarum grandenúmerodemáquinasvirtuais, sendoque

ada máquina virtualroda apenasuma apliação. Por outrolado, oXenfoi feitopara

hospedar máquinas virtuais apazes de suportar sistemas operaionais ompletos, que

podem exeutar mais de uma apliaçãopor máquina virtual.

2.2 Desempenho de Sistemas Virtuais

Oimpatodadegradaçãonodesempenhoausadoporvirtualizaçãofoidisutidoem

vários trabalhos anteriores [9,25, 47, 46,44, 37℄. Esses trabalhos propõem

implemen-tações para máquinas virtuais e avaliam a esalabilidade e o desempenho do sistema

de umamaneiraomparativaom outrossistemas virtuais. Entretanto,ofooda

(26)

exploram asausas dousto davirtualização, nemestudam ouso davirtualização em

um servidor virtual. Neste trabalho, apresentamos uma arquitetura para medição de

desempenhovisandoinvestigarasausasdoproessamentode E/Snoambientevirtual

Xen, bem omo entender o impato da virtualização em omponentes da arquitetura

do omputadore nainteraçãoentre máquinas virtuais.

O foodo estudo de aso e da arquitetura proposta está alado no modelo atual

de E/S doXen, onde todas asmáquinas virtuais seomuniamom odomíniode

dri-vers para aessar os dispositivos de hardware [20, 19℄. Este modelo é uma tendênia

resenteeommuitasvantagens,taisomoportabilidade,onançaeextensibilidade.

De fato, outros trabalhos utilizam ténias similares às do IDD no Xen [45, 24℄. Na

seção 3.2 expliamos a arquitetura do Xen para proessamentode E/S e seus

ompo-nentes.

Reentemente, Cherkasova etal. [11℄ propuseram uma formade medir o

proessa-mento de E/S no IDD devido a uma determinada máquina virtual. A idéia onsiste

em ontabilizaro usto eo número de troas de páginasentre uma máquinavirtual e

o IDD para alular aporção de tempo de CPU doIDD dediada para ada máquina

virtual. Neste trabalho, separamos o proessamento do IDD para E/S e o

proessa-mentodamáquinavirtual oloandoesses doisomponentes doXenemproessadores

diferentes. O uso de proessadores diferentes para a máquina virtual e o IDD torna

desneessário o álulo da utilizaçãono IDD, om base no número de troas de

pági-nas. Em [21℄, o proessamento de CPU para E/S no ambiente virtual Xen também

foi estudado. Esse trabalhoapresenta uma ferramenta para monitorara máquina

vir-tual do Xen e quantiar o usto de desempenho. Entretanto, o foo desse trabalho

está na distribuiçãode proessamentoentre o IDDe amáquina virtualquando ambas

ompetem pela mesma CPU. São explorados diferentes enários variando parâmetros

(27)

2.3 Apliações de Ambientes Virtuais

Um dos prinipais objetivos dos projetos reentes que envolvem virtualização é

alançar um nível de desempenho que permita a riação de entros de dados om

um grande número de máquinas físias, que podem ser ompartilhadaspor diferentes

unidades administrativas[1,23℄. Omotivodesseesforço ulminouemummodelopara

omputação hamado de Utility Computing 1

. Nesse modelo os entros de dados de

tenologiadainformaçãoexeutamapliaçõesdetereiros,quenãopagampeloserviço,

mas sim pela quantidade de reursos utilizada [48℄. Na direção desse novo modelo de

negóios para a omputação, várias empresas já possuem sua solução. A HP riou

o SoftUDC [23℄, a Sun possui um sistema hamado N1 ("gereniar

n

omputadores

em

1

"). A IBM, assim omo várias outras empresas tambémestão trabalhandonesta

área. Alguns esforços mais reentes visam a implantação de modelos de omputação

porutilidadeom qualidadede serviço (QoS)difereniada de aordoom ontratos de

nívelde serviço (SLA -Servie LevelAgreement) estabeleidos entre lientes eentros

omputaionais [2, 12℄.

Outraimportanteáreaemquevirtualizaçãovemsendolargamenteutilizadaéárea

de grades omputaionais [18,26℄. Avirtualização funionaneste ontexto omomeio

apaz de riar um ambiente exível, gereniável e adaptativo, que onsiga isolar uma

apliaçãodaoutrasemomprometerodesempenhodasapliações. Comoumexemplo,

o Planetlab [34℄, que é formado por uma rede de máquinas espalhadas por todo o

planeta, implementavirtualização para ampliarseu poder de monitoramento eprover

exibilidadepara aloaçãode reursos.

1

(28)

Sistemas Virtuais

O objetivo deste apítulo é apresentar as informações sobre virtualização e

ambi-entes virtuais neessárias para o entendimento do restante do trabalho. Iniialmente

apresentamosuma brevedesrição dosistemavirtualXenedomodelode E/Sadotado

peloXen. Estadesrição estáonentradanosaspetosdoXenquesãorelevantespara

a arquitetura proposta e para o estudo de aso realizado. Em seguida, disutimos os

prinipaispontos quedevemser onsideradosaomigrarmosapliaçõesde um servidor

real para um ambientevirtual.

3.1 Xen

O Xen é um ambiente virtual de ódigo aberto que permite múltiplas instânias

de sistemas operaionais rodarem onorrentemente em uma únia máquina. Este

ambiente virtual foi iniialmente desenvolvido para a arquitetura dos proessadores

x86, mas já existem versões para as arquiteturas de 64 bits. O Xen utiliza o

on-eito de para-virtualização, onde uma nova amadade software expõe uma abstração

de uma máquina virtual, um pouo diferente da amada de hardware. Em geral,

para-virtualização alança um melhor desempenho do que a abordagem baseada em

virtualização pura, mesmo em arquiteturas que não foram planejadas para ambientes

(29)

ser modiado para a interfae damáquina virtual. Apliações dos usuários e

biblio-teas não preisam sofrer modiações. Reentemente, a Intel desenvolveu hardware

espeial para virtualizaçãopara evitar esta neessidadede alteração nosistema

opera-ional. Isso permite, por exemplo,que o sistema operaionalWindows seja exeutado

no Xen, sem que a Mirosoft lane uma versão modiadado Windows espeial para

o Xen [14℄.

Uma visão geral da arquitetura do ambiente virtual Xen está representada na

-gura 1.1 do apítulo 1. Como podemos ver, o sistema virtual Xen é organizado em

múltiplasamadas. Na amadamais baixa temos ohardware damáquina onde o

am-biente virtual é exeutado. Logo aima da amada de hardware temos a amada de

software om mais privilégios de aesso ao hardware hamada de monitor de

máqui-nas virtuais(VMM - virtual mahinemonitor). Aima desta amadase enontram as

máquinas virtuais, também hamadas de domínios [9℄. O Xen pode hospedar

múlti-plos sistemas operaionais, ada um rodando em uma máquina virtual. As máquinas

virtuais são esalonadas peloXen para fazer uso mais eiente das CPUs disponíveis.

Cada sistemaoperaionalgereniasuas própriasapliações,quemuitasvezes preisam

de aesso privilegiadoao hardware. Pare este propósito, o Xen expõe um meanismo

de hiperhamada, que as máquinas virtuais preisam utilizar para realizar operações

privilegiadas (ex., instalar uma tabela de página),um meanismo de notiação para

entregar interrupçõesvirtuais e notiaçõespara máquinas virtuais e um anal de

o-muniação para transferir mensagens de E/S entre as máquinas virtuais e o domínio

privilegiado.

3.2 Modelo de E/S do Xen

Em um ambiente virtual todas as operações de E/S são proessadas diretamente

pelohardwaredeformatransparenteparaosistemaoperaionaldasmáquinasvirtuais.

(30)

VMM possui privilégios de aesso ao hardware, sendo responsável pelo gereniamento

das outrasmáquinas virtuais. Como todoo tráfego de E/S preisa passar peloVMM,

nesta arquitetura temos problemas de esalabilidadealém de um únio ponto de falha

apaz de parartodoosistema.

Hardware

Dom0

Drivers

Máquina

Virtual

VMM

(a) Dispositivos de E/S no

VMM

Virtual

IDD

Drivers

VMM

Hardware

Máquina

(b) Dispositivos de E/S no

IDD

Virtual

IDD

Drivers

IDD

Drivers

Hardware

VMM

Máquina

() Dispositivos de E/S

divi-didosemmúltiplosIDDs

Figura3.1: Visão geral dos diferentes modelos de E/S doXen

Reentemente, um novo modelo foi proposto e implementado na arquitetura do

Xen[20℄. Este modeloutilizauma máquinavirtualom aessosprivilegiadoshamada

dedomíniodedriverisoladoouIDD(IsolatedDriverDomain),queontémdispositivos

de hardware espeíos e exeuta os dispositivos de entrada e saída. Todas as outras

máquinas virtuais exeutam um únio e simples dispositivo de driver que aessa os

verdadeiros dispositivos de hardware. A gura 3.2 mostra uma desrição detalhada

deste modelo de E/S. O IDD pode aessar diretamente os dispositivos de hardware

que ele possui. Por outro lado, uma máquina virtual hóspede 1

utiliza um dispositivo

virtual onetado ao IDD para aessar os dispositivos de hardware. O IDD mapeia,

através de pontes ou meanismos de roteamento, a interfae físia em sua interfae

virtual que omunia om ainterfae damáquinavirtual omo mostraagura 3.1(b).

Interrupções de dispositivos de hardware são primeiramente perebidas pelo VMM,

que então notia o orrespondente IDD através de interrupções virtuais entregues

por um meanismo de eventos. As máquinas virtuais troam serviços de requisições

e respostas om o IDD através de um anel desritor de E/S no anal do dispositivo.

ReferêniasparapáginassãotransferidasatravésdoaneldedesritoresdeE/S aoinvés

(31)

de enviarosverdadeirosdados,poisistoausariaópiaedupliação. Quando odado é

enviadopelamáquina virtual,oXenutilizaum meanismode ompartilhamentoonde

a máquinavirtual permite aoIDD mapear apágina om odado eaessá-laatravés de

aesso diretoà memória (DMA - Dynami Memory Aess) pelodispositivo. Quando

o dado é enviado pelo IDD para a máquina virtual, o Xen utiliza um meanismo de

remapeamento de página, que mapeia a página forneida pela máquina virtual. Foi

utilizado nos experimentos uma versão doXenque implementaeste modelo.

Peth0

Hardware

NIC

IDD

Ponte

Vif

E/S

Vif

Canal de

Hóspede

Monitor de Máquinas Virtuais

Figura3.2: Visão geral domodelo de E/S atual doXen

Outro modelo de E/S reentemente proposto [19℄, introduz a idéia de múltiplos

IDDs. Este tereiro enário é representado na gura 3.1(). Espera-se que o suporte

a múltiplos IDDs evite alguns problemas relaionados a onitos de otimizações e

aloação de reursos. Além disso, espera-se que esta abordagem possa melhorar a

esalabilidade dos domínios de drivers e prover uma melhortolerânia a falhas para o

(32)

3.3 Implantação de Apliações em um Ambiente

Virtual

Aimplantaçãodeapliaçõesemmáquinasvirtuaislevantaváriosproblemasquenão

existem emambientes reais. A seguirdisutiremos osprinipaisfatores quedevemser

onsiderados ao migrarmosapliações para um ambiente virtual. Podemos lassiar

estes problemasem três gruposbásios:

Meanismos não implementados: Diversas apliações utilizam reursos

es-peiais de hardware ou mesmo meanismos espeiais para obter um melhor

de-sempenho. Muitas vezes estes meanismos não podem ser implantados em um

ambientevirtual, oquepode fazerom quedeterminadaapliaçãoapresenteum

desempenho bem pior quando omparado om a sua exeução em um ambiente

não virtual. Por exemplo, a versão atual da virtualização de E/S do Xen pode

degradar o desempenho das apliaçõespor não utilizar o hardware de rede para

fazersegmentaçãoTCP eheksum. Alémdisso, apliaçõesde rede queutilizam

a rotina sendle() podem ter uma degradação no desempenho onsiderável em

ambientes virtuais já que esta função onsiste de uma otimização para enviar

paotesde rede diretamentede arquivosque nãoestá implementadanoXen. Há

um grande esforço sendo realizado para melhorar o desempenho da

virtualiza-ção, espeialmente para E/S [20, 19, 45, 24℄. Denitivamente as arquiteturas de

hardware de hoje não foram projetadas para ambientes virtuais e o

desenvolvi-mento de hardware espeial para virtualização paree ser uma possível direção

para ontornar diversos problemas, inlusiveproblemas de desempenho [22℄.

Esalabilidade e Conguração: O desempenho de apliações em ambientes

virtuais pode variarsigniativamentedependendodaonguraçãoadotadapelo

sistema. Para rodarmos um onjunto de apliações enapsuladas por máquinas

(33)

guraçãoapazde afetarritiamenteodesempenhodas apliaçõeséaassoiação

de múltiplasmáquinas virtuais e IDDs aos proessadores de um servidor

multi-proessado.

Interferênia entre máquinas virtuais: Considere um servidor om um

nú-mero

X

de proessadores rodando um número

Y

de máquinas virtuais tal que

Y > X

. Nesse enário,pelomenosum proessador será ompartilhadoporduas

máquinas virtuais e, onsiderando-se que o esalonador do sistema virtual seja

justo, poderíamosesperarqueodesempenhodasapliaçõesexeutadasnessa

má-quina virtual seja próximodametadedodesempenho que elas alançamquando

estamáquinavirtualexeutaemumproessadornãoompartilhado. Entretanto,

este desempenhopodeser pior. Máquinasvirtuaisompartilhandoosmesmos

re-ursos de hardware, omo ahes, podem ausar interferênia umas nas outras.

Umamáquinavirtualnãoéumasimplesapliação. Quandooproessadoromeça

a rodar uma máquina virtual, além do ódigo das apliaçõesemexeução, ada

máquinavirtualarregatodooódigodokernel ebiblioteas,poluindoasahes

do proessador para a próxima máquina virtual. Note que este efeito também

aontee em um ambiente real om várias apliações em exeução. Entretanto,

as máquinasvirtuais são mais "pesadas"e podemausar uma degradação de

(34)

Monitoramento e Medição de

Desempenho em Servidores Virtuais

Este apítulo apresenta uma disussão sobre medição de desempenho nos vários

níveisdeum ambientevirtual. Emseguida,são apresentadasduas téniaspara medir

e monitorardesempenhode apliaçõesemmáquinasvirtuais euma disussão sobre as

métriasdedesempenhoaseremonsideradasparaavaliarodesempenhode apliações

exeutadas nesses ambientes.

4.1 Medição e Monitoramento

Emqualquer proesso de mediçãode desempenho,o ponto have éentender o que

está sendo medido e o quão preiso e onável os resultados numérios são. Sendo

assim, entenderofunionamento,aapaidadeeaslimitaçõesdas téniasde medição

de desempenhoutilizadasparaquantiarodesempenhodeum sistemaéumaquestão

essenial.

Para medironívelde atividadedeum sistemade omputaçãoutilizamos

ferramen-tas de monitoramento [16℄, que têm omo prinipal função monitorar e oletar

infor-mações sobre determinada operação realizada pelo sistema. Idealmente, um monitor

(35)

sistema. Omonitoramentodeve ser feito de formaa não afetar a operaçãodo sistema

monitorado. Existem monitoresde hardware esoftware. Osprimeirossão ferramentas

eletrniassiamenteaopladasaosistema,deformaadetetardeterminadoseventos

e apturar o estado de omponentes de hardware, taisomo registradores e anais de

E/S. Os monitores de software onsistem de rotinas inseridas no software do sistema

om ointuito de armazenardeterminados eventos eo estado dosistema.

4.2 Ténias de Medição e Monitoramento

Umsistemaoperaionalnãoonsegue distinguirseestá exeutandosobre uma

má-quinavirtualousobreumamáquinareal. Dessaforma,sealoarmosparaumamáquina

virtualapenas30%daapaidadede umproessador,quandoosistemaoperaionalda

máquina virtual reportar 100% de utilização, esses 100% na verdade orrespondem a

30%dautilizaçãodohardwareverdadeiroadiionadoaoproessamentodeoperaçõesde

E/S egereniamentorelativosaessa máquinavirtual. Combase nesseexemplo,

pode-mosnotarqueasténiasonvenionaisutilizadasdiretamenteparamedirdesempenho

e obter informaçõesdo sistema não podem ser utilizadas emambientes virtuais. Esta

seção disute duas ténias para medição e monitoramento de apliações exeutando

sobre máquinas virtuais.

Aformautilizadaparamonitorardesempenhoemumambientevirtual pode variar

de aordoomapreisãoquesequeira obterouoníveldeinformaçãoquesedeseja

ex-trair das máquinasvirtuaiseapliações. Quando lidamosomum sistemaoperaional

simples exeutando em uma máquina real, todas as informações do sistema são

man-tidas em um únio loalentralizado,o kernel. Em um ambientevirtual, dependendo

dasinformaçõesdesejadas,asmesmaspodemestarespalhadaspelasmáquinasvirtuais,

sendo que muitas informações não podem ser aessadas diretamente pelo monitor de

máquinas virtuais. Sendo assim, podemos denir duas maneiras de se monitorar um

(36)

4.2.1 Monitoramento Centralizado

Métrias omo utilizaçãode CPU, aessos ao diso, onsumo de memória e banda

de rede onsumida porada máquinavirtual podem ser obtidasnomonitorde

máqui-nas virtuais. Na amada do VMM enontra-se um esalonador de máquinas virtuais

quedeterminaquantotempoadamáquinavirtualoupaaCPU. Conseqüentementea

porentagem de tempo de CPU queada máquinavirtual oupaduranteum

determi-nado períodoé uma informaçãoque pode ser obtida no própriomonitor de máquinas

virtuais. Damesmaforma,todos osaessosaodisoeenviooureebimentode paotes

de rede de uma máquina virtual são ontabilizados no IDD e armazenados na VMM.

Além disso, informações sobre asaraterístias, ongurações eestado das máquinas

virtuais podem ser aessadas e monitoradas pelo VMM. Chamamos essa ténia de

monitoramentoentralizado,poisasinformaçõessobreasmáquinasvirtuaisestão

en-tralizadas no monitor de máquinas virtuais. Como um exemplo, onsidere o álulo

da utilização de CPU. Podemos obter o tempo de CPU onsumido por determinada

máquina virtual em uma CPU e onseqüentemente riar ferramentas que reportam a

utilizaçãoperiodiamente. Umaferramentareentementedesenvolvidaparamonitorar

autilizaçãodeCPUdeadamáquinavirtualnoambientevirtualXenéoxentop,

inor-poradopeloXen3.0omo um omando noVMM (xm top). Esta ferramenta funiona

omooomandotopdoUnix,porémeladifereniaaquantidadedeCPUutilizadaentre

todasasmáquinasvirtuais exeutadassimultaneamente. Estaténiaéextremamente

prátia e simples para medir a quantidade de reursos que ada máquina virtual está

onsumindo. Entretanto, elanão fornee nenhuma informaçãosobre asapliaçõesque

exeutam nas máquinas virtuais ou mesmo qual apliação é a maior responsável pela

utilização de CPU de determinada máquina virtual. O monitorde máquinas virtuais

oferee apenas uma visão dodesempenho e do omportamento das máquinas virtuais

(37)

4.2.2 Monitoramento Distribuído

Dependendo do nível de informação que se queira obter do sistema, entralizar o

proesso de oleta de informação no monitor de máquinas virtuais pode não ser

pos-sível. Como um exemplo, no ambiente virtual Xen, o monitor de máquinas virtuais

não onsegue determinaro proessoem exeuçãoemuma máquina virtual,ou mesmo

determinar se uma rotina de uma apliação é a maior responsável por falhas nas

a-hes. Nesse aso, preisamos monitorar ontadores de hardware, aos quais apenas o

VMM possui aesso, e obter o nome da função em exeução, informação que está na

máquina virtual. Uma forma para obtermos essas informações é introduzir

monito-res loais nas máquinas virtuais, de forma que o VMM se torna gereniador desses

monitores. A gura 4.1 ilustra este enário. As máquinas virtuais são responsáveis

pelo monitoramento e oleta de informações que o monitor de máquinas virtuais não

pode aessar. As máquinasvirtuais não possuemaesso aohardware epreisamque o

monitor de máquinas virtuais exeute parte doproesso. No aso doexemplo em que

queremos saber qual apliação é a maior responsável por falhas nas ahes, o VMM

passa a funionar omo uma interfae de monitoramento para as máquinas virtuais,

gereniando seus aessos aos ontadores de hardware. O monitor de máquinas

virtu-ais pode programar ontadores de hardware para disparar interrupções em intervalos

regulares e pré-denidos de oleta de eventos. O VMM a responsável por assoiar

as interrupções geradas pelos ontadores de hardware om suas respetivas máquinas

virtuais. Ao reeber esta opção as máquinas virtuais podem exeutar determinada

ação omo porexemplo, determinar aapliaçãooua funçãoque geroutal interrupção

e registrarestas informações.

Ao utilizarmosessa téniaéneessário um uidadoom onúmerode interrupções

ausadas. Considere omo exemplo, se monitorarmos o número de instruções

exeu-tadas. Se lançarmos uma interrupção a ada instrução, o sistema laramenteentraria

em estado de trashing. Sendo assim, esta ténia faz sentido somente se oletarmos

(38)

Virtual

Máquina

Virtual

Máquina

Virtual

Local

Monitor

Máquina

VMM

Interface de Monitoramento

Local

Monitor

Local

Monitor

Plataforma de Harware

Figura4.1: Arquiteturapara mediçãode desempenho distribuída

evento monitorado. Por exemplo, a ada 100.000 falhas na ahe L2 ausadas por

determinada máquina virtual, uma interrupção é lançada e uma amostra é oletada

registrando aapliaçãooufunção emexeução. Sendoassim, éneessário esolher um

intervalode amostragemadequado, para queonúmero deamostrasseja signiativoe

o sistema não tenha seu desempenho afetado.

4.3 Métrias de Desempenho

Uma das questões que devemos levantar ao migrarmos apliações de um servidor

real para um servidor virtual é seas apliaçõesterão um desempenho equivalente em

seunovoambiente. Dessaforma,váriasmétriasutilizadasparasemedirodesempenho

de apliaçõesemservidoresreaispodemserutilizadasparamedirdesempenho em

am-bientes virtuais. Comoum exemplo,seonsiderarmosamigraçãode um servidorWeb

de uma plataforma real para um ambiente virtual poderíamos avaliar o desempenho

do servidorWeb emseu novo ambientemedindo: tempo de resposta,taxa de saída de

requisições, número de requisiçõesreusadas, et. Essas métrias forneem um

enten-dimentodopontode vistadousuário sobreodesempenhode apliaçõesemambientes

virtuais. Entretanto, para entendermos o omportamento de apliações emambientes

(39)

uti-e disute outrasmétrias úteis para oentendimento de ambientes virtuais.

4.3.1 Utilização de CPU

Emum ambiente virtualé neessáriomais tempode CPUdoqueemum ambiente

real para se exeutar uma mesma apliação. Sendo assim, a utilização de CPU é

uma das métrias mais importantes para o estudo de desempenho de apliações em

ambientesvirtuais. Umambientevirtualpossuiváriasamadaseadaelementodessas

amadasé responsávelporparteda utilizaçãodos reursos do hardware [27℄. Aseguir

denimos autilizaçãode CPUnessas diferentes amadas de software.

Considere

U

t

cpu

omo a utilizaçãode CPU total de um sistema qualquer e

U

cpu,r

, a

utilizaçãodeCPUpelalasse

r

deinstruções. Umalassepodeseronsideradaomoas

operaçõesrealizadaspordeterminadaamadadoambientevirtual,quesão: instruções

do VMM, instruções do sistema operaional (SO) em exeução na máquina virtual e

instruçõesdos programas exeutados sobre este SO.

Para formalizarmosa denição de utilizaçãode CPU de uma máquina virtual

va-mos disutir a utilização de CPU de apliações sendo exeutadas em três tipos de

plataformas: (1) Hardware, (2) Sistemaoperaionale (3)Máquina virtual.

Hardware

Programas

(a)

Programas

SO

Hardware

(b)

VMM

SO

SO

Programas

Programas

Hardware

()

Figura 4.2: Diferentes ambientes de exeução de apliações

Hardware: Suponha uma apliação que não utiliza o sistema operaional e aessa

diretamente o hardware. Nesse aso, o programa tem ontrole ompleto da máquina,

omo mostra a gura 4.2(a). Observando a utilizaçãode CPU sabemos que

U

(40)

re-presenta a fração de tempo que a CPU ou oupada realizando apenas um tipo de

atividade: exeutando instruções de programas. Sendo assim,podemos esrever que

U

cpu

t

=

U

cpu,prog

(4.1)

onde

U

cpu,prog

se refere à fração de tempo de CPU onsumida pelos programas em

exeuçãonohardware. Emoutraspalavras,umaúnialassede instruçõesmonopoliza

o aesso aohardware.

Sistema Operaional: O próximoambiente onsiste de um sistema operaional

ge-reniando os reursos de hardware. Apliações, por sua vez, são exeutadas sobre o

sistema operaional, omo ilustradona gura 4.2(b). A utilizaçãode CPU neste aso

india a fração de tempo que a CPU está oupada fazendo dois tipos de atividades:

proessando instruções de programase exeutandorotinas dosistemaoperaional. Os

reursos de hardware gastosom osistemaoperaionalsão onheidos omooverhead.

Dessa forma,autilizaçãode CPU totaldo sistemapode ser esritada seguinteforma:

U

cpu

t

=

U

cpu,so

+

U

cpu,prog

(4.2)

onde

U

cpu,so

orresponde ao overhead do sistema operaional, araterizado por

ativi-dades, taisomo apturar operaçõesde E/S, paginação e memóriavirtual.

Máquina Virtual: Emum ambientede exeução forneidopor umsistema virtual a

CPUé ompartilhadapordiferentes amadasde software omo mostraa gura4.2().

O monitorde máquinasvirtuais realizadiversasoperaçõesrelativasaoaesso ao

hard-wareegereniamentodasmáquinasvirtuais, omoporexemplooperaçõesde E/S.Seja

Dom

1

,

Dom

2

, ...,

Dom

N

máquinas virtuais ompartilhando a mesma estrutura físia.

A utilizaçãode CPU de uma únia máquinavirtual,

U

Dom

i

(41)

U

Dom

i

cpu

=

U

Dom

i

cpu,vmm

+

U

Dom

i

cpu,so

+

U

Dom

i

cpu,prog

(4.3)

onde

U

Dom

i

cpu,vmm

representa a utilização de CPU onsumida pelo monitor de máquinas

virtuais para a gereniar as operações de E/S e traduzir as instruções da máquina

virtual

Dom

i

,

U

Dom

i

cpu,so

orresponde à utilizaçãode CPU devido ao overhead do sistema

operaionale

U

Dom

i

cpu,prog

é a utilização de CPU para rodar os programas exeutados na

máquina virtual

Dom

i

. De uma maneira mais geral, a utilizaçãode CPU do sistema

pode ser esrita omoa somada utilizaçãode CPUonsumida portodas as máquinas

virtuais e seus respetivos sistemasoperaionais e apliações:

U

cpu

t

=

N

X

i

=1

U

Dom

i

cpu

(4.4)

onde N é o número de máquinas virtuaisem exeuçãono VMM.

Dependendo do tipo de análise e monitoramento realizada no sistema, podemos

veriar qual a porentagem de CPU gasta em ada uma dessas amadas. No aso

em que migramos um determinado serviço de um ambiente real para um ambiente

virtual é importante saber qual o overhead introduzido pela virtualização, ou seja,

estamos interessados emsaber

U

Dom

i

cpu

para ompararmosom autilizaçãodas mesmas

apliaçõesexeutando emuma plataformanão virtual. A próximaseção mostraomo

alular

U

Dom

i

cpu

utilizando as ténias desritas de medição de desempenho desritas

anteriormente.

4.3.1.1 Calulando Utilização de CPU em um Ambiente Virtual

No apítulo 3 disutimos que o IDD é responsável por todas as operações de E/S

das máquinas virtuais. Dessa forma, para alularmos

U

Dom

i

cpu

, a utilização de CPU

de uma determinada máquina virtual, preisamos levar em onsideração a utilização

(42)

designar otermo

Dom

0

para representar IDD 1

.

Para alularmos a utilização de CPU a partir da ténia entralizada no VMM,

podemos realizar duas medições,

M

Dom

i

0

e

M

Dom

i

t

, do tempo de CPU onsumido pela

máquina virtual

Dom

i

em um intervalo de tempo

T

. Sendo assim, denimos

B

Dom

i

omo otempoemque aCPUououpadaomamáquinavirtual

Dom

i

nointervalo

de tempo

T

e

B

Dom

i

Dom

0

omo o tempo em que a CPU ou oupada por

Dom

0

para

realizar operações de E/S da máquina virtual

Dom

i

.

B

Dom

i

pode ser alulado da

seguinteforma:

B

Dom

i

=

M

Dom

i

t

M

Dom

i

0

(4.5)

Note que

B

Dom

i

não inlui

B

Dom

i

Dom

0

. No aso em que temos apenas uma máquina

virtual,

Dom

1

,exeutando nosistema e

Dom

0

não realiza nenhuma outra operação a

não ser asoperaçõesde E/S damáquinavirtualemexeuçãopodemosalular

B

Dom

1

Dom

0

omo na equação 4.5. Entretanto, quando existe mais de uma máquina virtual sendo

exeutada simultaneamente, podemos estimar

B

Dom

i

Dom

0

a partir do número de troas de

página entre o

dom

0

e

dom

i

[11℄. Como disutido no apítulo3, o modelo de E/S do

ambientevirtualXen(tambémadotadoporoutrossistemasomooDenali)funionada

seguinteforma. Para evitar o usto de opiarum paotede dadosde E/S da máquina

virtualparao

dom

0

,oXenimplementaummeanismodetroadepáginasnamemória.

Sendo assim, o usto para o

Dom

0

proessar paotes de

36

bytes e paotes de

1448

bytesseriaomesmo,asoonúmerode troadepáginasnamemóriaparaentregarestes

paotes seja omesmo [11℄. Sendoassim, para alular

B

Dom

i

Dom

0

emum ambientevirtual

om mais de uma máquina virtual em exeução preisamos primeiramente alular,

B

Dom

tp

0

, o tempoque uma operação de troade páginas na memóriaoupa a CPU do

Dom

0

. Se medirmos o número total de troas de páginas

N

t

Dom

0

oorridas no

Dom

0

,

ausadas por todas a máquinas virtuais em exeução e alularmos

B

Dom

0

, o tempo

1

NaterminologiadoXenoIDDé,àsvezes,hamadodeDomain0,pelofatodoIDDseramáquina

(43)

que emque a CPUou oupadaom

Dom

0

, através daequação 4.5, temos:

B

Dom

tp

0

=

B

Dom

0

N

t

Dom

0

(4.6)

Dessa forma, medindo o número de troa de páginas em uma máquina virtual,

N

Dom

i

, temos:

B

Dom

i

Dom

0

=

N

Dom

i

B

tp

Dom

0

(4.7)

Considerando-se apenas uma CPUpara o

Dom

i

, podemos denir

U

Dom

i

cpu

omo:

U

Dom

i

cpu

=

B

Dom

i

+

B

Dom

i

Dom

0

T

(4.8)

Observe queautilizaçãode CPUde uma máquinavirtual aluladaom ométodo

aimaonsistede umamédiadautilizaçãodeCPUnoperíodoanalisado. Como

exem-plo, onsidere uma máquina virtual

Dom

1

sendo monitorada em um intervalo de

60

segundos. Se observarmos que a CPU ou oupada

30

segundos om esta máquina

virtual e

18

segundos om

dom

0

para realizar operações de E/S para esta máquina

virtual temosa utilizaçãomédia de CPU neste intervalo:

U

Dom

1

cpu

=

30+18

60

= 0

,

8

.

Se utilizarmosa ténia distribuída podemos obter a utilizaçãode CPU de

deter-minada máquina virtual através de amostras de eventos de hardware. Nesse aso, o

evento de hardware monitorado pode ser o número de ilos de lok em que a CPU

ou oupada.

O álulo da utilização de CPU para ada máquina virtual através desta ténia

pode serrealizadodaseguinteforma. Seja

s

0

,

s

1

,...,

s

N

onúmerode amostrasoletadas

paraadaumadas

N

máquinasvirtuais

Dom

0

, Dom

1

, ..., Dom

N

duranteointervalode

tempo

T

doexperimento. Para ada máquina virtual, umaamostra éoletada aada

intervalo de

C

ilos de lok oupados e o proessador da máquina que hospeda as

máquinasvirtuais possuifreqüênia

F

Hz. Podemosestimar

B

Dom

i

(44)

B

Dom

i

=

s

i

C

F

(4.9)

Conseqüentemente, a utilizaçãode CPUda máquinavirtual

Dom

i

pode ser

alu-lada utilizando-se a equação 4.8. Note que, novamente

B

Dom

i

Dom

0

só pode ser alulado

através daequação 4.9se tivermos apenas uma máquina virtual nosistema e o

Dom

0

nãorealizarnenhumaoutraoperaçãoanãoserasoperaçõesdeE/S damáquinavirtual

em exeução.

Como um exemplo, onsidere um proessador de

2

x

10

9

Hz exeutando um

am-biente virtual om apenas uma máquina virtual

Dom

1

. Uma amostra é oletada

a ada intervalo de

10

6

ilos de lok oupados. Suponha que durante um

pe-ríodo de monitoramento do sistema de

100

segundos foram oletados

1000

amos-tras para a máquina virtual

Dom

1

e

500

amostras para

Dom

0

. Sendo assim, temos:

B

Dom

1

=

1000

x

10

6

2

x

10

9

= 50

segundos

e

B

Dom

1

Dom

0

=

500

x

10

6

2

x

10

9

= 25

segundos

. Conseqüentemente

U

Dom

1

cpu

=

50+25

100

= 0

,

75

.

Observe que a utilizaçãode CPU estimadaom esta métria pode não ser preisa

se o intervalo

C

de oletas de amostras for grande relativo ao número de eventos

oletados. Entretanto, se este intervalo for pequeno, o desempenho do sistema pode

ar omprometidodevido ao grande número de interrupções ausadas pela oleta de

amostras. A grande vantagem desta ténia é permitir que outras informações sejam

oletadas juntamenteom as amostras. Podemos, por exemplo, estar interessados em

saber qualo onjuntode rotinasdo TCP é responsável pelamaior parte dautilização

de CPUquandoexeutamos umaapliaçãoquerealizaumgrandenúmerode onexões

TCP.

4.3.2 Outras Métrias de Desempenho em Ambientes Virtuais

Como destaamos anteriormente, boa parte das métrias onvenionais para

(45)

utilizamosa téniade monitoramentodistribuído,várioseventosde hardware podem

se tornar métriasde desempenho de um sistemavirtual. Como um exemplo,quando

oloamos mais de uma máquinavirtual ompartilhando omesmohardware, é

impor-tante veriar se aausa da queda nodesempenho do ambientevirtual não é ausada

porum grandenúmerode falhasnaahe. Em umservidor multi-proessadopode ser

mais eiente agrupar em um mesmo proessador apliações que não utilizam tanto

ahes edeixarapliaçõesquearregamgrandesporçõesdamemóriarodarememuma

(46)

Estudo de Caso

Este apítulo apresenta um estudo de aso que utiliza as ténias de medição de

desempenho disutidas noapítulo4eexploraa questãodamigraçãode apliaçõesde

servidoresreaisparaservidoresvirtuais. Iniialmenteenuniamosoproblemaabordado

atravésde umexemploeemseguidadesrevemos osexperimentosrealizados,ambiente

experimental, onjunto de testes, ferramentas e métrias utilizadas. Os resultados do

estudo de aso são apresentados nopróximo apítulo.

5.1 Congurando um Servidor Virtual

Para ilustrarmos o problema abordado neste estudo de aso vamos apresentar um

exemplo motivador que levanta várias questões relativas à exeução de apliações em

servidores virtuais. Considere uma máquinaom quatro proessadores e duas

interfa-es de rede(NIC -Network Interfae Card),naqualqueremosimplantarumambiente

virtual om várias apliações exeutando ao mesmo tempo. A gura 5.1 mostra três

enários, ada um representando uma onguração diferente para os mesmos

reur-sos. A gura 5.1(a) ilustra um enário onde ambosos NICs são assoiados ao mesmo

IDD, exeutandoemumaúniaCPU. Aquestão prinipalquepodemoslevantarneste

enário está ligada à esalabilidadedo IDD. Uma únia CPU para o IDD seria

(47)

questão importante onsiste em denir um onjunto de araterístias das apliações

que permite aloar reursos para o IDD de forma a garantir o desempenho esperado

das máquinas virtuais. Na gura 5.1(b) temos um IDD exeutando om SMP

(Sym-metri Multi-Proessing) em dois proessadores e, para ada proessador, assoiamos

um dos NICs. Observando este enáriopodemoslevantarasseguintes perguntas: Esta

onguraçãopode melhoraraesalabilidadedoIDD? Quanto? Comotereiroenário,

representado na gura 5.1() apresentamos dois IDDs, ada um exeutando em uma

CPU. Nesta onguração, ada NICé assoiado aum IDD 1

.Comparandoeste enário

om asegunda onguração, seria interessantesaber qual onguraçãoleva a um

me-lhordesempenho. Outroimportanteassuntoaserestudadoestárelaionadoaonúmero

de máquinas virtuais em ada CPU e à interferênia, em termos de desempenho, que

máquinas virtuais podem ausar umas nas outras quando ompartilham os mesmos

reursos.

IDD

CPU

CPU

CPU

CPU

NIC

NIC

MV

MV

MV

(a) Cenário1

CPU

CPU

CPU

CPU

NIC

NIC

MV

MV

MV

MV

IDD(2 CPUs)

(b) Cenário2

IDD

IDD

CPU

CPU

CPU

CPU

NIC

NIC

MV

MV

MV

MV

MV

MV

() Cenário3

Figura5.1: Diferentes ongurações para osmesmos reursos

Neste estudode aso, são abordadasváriasdas questõeslevantadas nesse exemplo,

utilizandoumservidorsimilaraodesritonagura5.1. Entenderasrazõesdooverhead

da virtualização e quantiar este overhead é ruialpara implantarmos e

ongurar-mos um ambiente virtual. O foo da avaliação de desempenho apresentada está em

estudar experimentalmente o desempenho do ambiente virtual Xen em um servidor

omo uma função das araterístias das apliações e esolhas de onguração. Uma

outra alternativaseria modelagemanalítia. Mas omoaindanão hádados suientes

para a onstrução de um modelo,deixamos esta alternativaomo trabalho futuro.

1

Imagem

Figura 1.1: Visão geral de um sistema que utiliza para-virtualização
Figura 3.1: Visão geral dos diferentes modelos de E/S do Xen
Figura 3.2: Visão geral do modelo de E/S atual do Xen
Figura 4.1: Arquitetura para medição de desempenho distribuída
+7

Referências

Documentos relacionados

No sentido de reverter tal situação, a realização deste trabalho elaborado na disciplina de Prática enquanto Componente Curricular V (PeCC V), buscou proporcionar as

Instale as duas luzes de travão/sinalização na parte inferior da plataforma de carga de plástico e suporte da plataforma de carga com dois pequenos suportes de luzes

Úgy érzi, hogy nem szabad rosszra gondolni, még kevésbé kimondani, mert a gondolat valósággá vá- lik, vagy éppen ellenkezôleg, igenis elôre kell szorongani, és akkor

(2013) avaliando o manejo da irrigação para cultura do algodoeiro com o auxílio de um software de gerenciamento desenvolvido pela fazenda onde o experimento foi conduzido,

5 – A escolha dos atletas contemplados será através da classificação a seleção brasileira para o Classificatório para os Jogos Panamericanos da Juventude

Acredita-se, portanto, que o artigo cumpre com seu objetivo de refletir sobre as contribuições da Tecnologia Educativa (TE) no âmbito da inovação curricular, ao considerar

Mais de uma centena de pesquisadores, dentre os mais importantes do mundo na área (vindos de todos os continentes), já participa- ram como convidados nas versões anteriores do

ð Uso de técnicas para aumento do desempenho ð Desenho das entidades utilizando uma API gráfica Modelagem do ambiente virtual Mediador do Sistema Inicialização Altualização do