UMA ARQUITETURA PARA MONITORAMENTO
E MEDIÇO DE DESEMPENHO PARA
AMBIENTES VIRTUAIS
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
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
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
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.
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
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,
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
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
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
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
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
5.1 Caraterístias daCarga Web . . . 36
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
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
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
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 paraonsolidar 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
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 umambiente 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,omopor 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 servistaomoumaamadade 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
sistema.
•
Portabilidade de hardware: Ambientes virtuais podem ser utilizados paraproverailusã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 ambienteparatestes, 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
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 emonitorardesempenhoem 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•
Apresentamos uma avaliação de desempenho do ambientevirtual Xen om foonosparâ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çãodedesempe-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êsainovezes 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
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
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
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
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
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
omputadoresem
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
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
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.
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
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
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 reursoses-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 ambientesvirtuais pode variarsigniativamentedependendodaonguraçãoadotadapelo
sistema. Para rodarmos um onjunto de apliações enapsuladas por máquinas
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 umnú-mero
X
de proessadores rodando um númeroY
de máquinas virtuais tal queY > X
. Nesse enário,pelomenosum proessador será ompartilhadoporduasmá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
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
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
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
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
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
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 eU
cpu,r
, autilizaçãodeCPUpelalasse
r
deinstruções. Umalassepodeseronsideradaomoasoperaçõ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
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 emexeuçã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 porativi-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
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áquinasvirtuais 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 sistemaoperaionale
U
Dom
i
cpu,prog
é a utilização de CPU para rodar os programas exeutados namáquina virtual
Dom
i
. De uma maneira mais geral, a utilizaçãode CPU do sistemapode 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 mesmasapliaçõ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 desritasanteriormente.
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 CPUde uma determinada máquina virtual, preisamos levar em onsideração a utilização
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
eM
Dom
i
t
, do tempo de CPU onsumido pelamáquina virtual
Dom
i
em um intervalo de tempoT
. Sendo assim, denimosB
Dom
i
omo otempoemque aCPUououpadaomamáquinavirtual
Dom
i
nointervalode tempo
T
eB
Dom
i
Dom
0
omo o tempo em que a CPU ou oupada porDom
0
pararealizar 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áquinavirtual,
Dom
1
,exeutando nosistema eDom
0
não realiza nenhuma outra operação anã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 depágina entre o
dom
0
edom
i
[11℄. Como disutido no apítulo3, o modelo de E/S doambientevirtualXen(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 de36
bytes e paotes de1448
bytesseriaomesmo,asoonúmerode troadepáginasnamemóriaparaentregarestes
paotes seja omesmo [11℄. Sendoassim, para alular
B
Dom
i
Dom
0
emum ambientevirtualom 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 doDom
0
. Se medirmos o número total de troas de páginasN
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
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 denirU
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 de60
segundos. Se observarmos que a CPU ou oupada
30
segundos om esta máquinavirtual e
18
segundos omdom
0
para realizar operações de E/S para esta máquinavirtual 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 amostrasoletadasparaadaumadas
N
máquinasvirtuaisDom
0
, Dom
1
, ..., Dom
N
duranteointervalodetempo
T
doexperimento. Para ada máquina virtual, umaamostra éoletada aadaintervalo de
C
ilos de lok oupados e o proessador da máquina que hospeda asmáquinasvirtuais possuifreqüênia
F
Hz. PodemosestimarB
Dom
i
B
Dom
i
=
s
i
C
F
(4.9)Conseqüentemente, a utilizaçãode CPUda máquinavirtual
Dom
i
pode seralu-lada utilizando-se a equação 4.8. Note que, novamente
B
Dom
i
Dom
0
só pode ser aluladoatravé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 é oletadaa ada intervalo de
10
6
ilos de lok oupados. Suponha que durante um
pe-ríodo de monitoramento do sistema de
100
segundos foram oletados1000
amos-tras para a máquina virtual
Dom
1
e500
amostras paraDom
0
. Sendo assim, temos:B
Dom
1
=
1000
x
10
6
2
x
10
9
= 50
segundos
eB
Dom
1
Dom
0
=
500
x
10
6
2
x
10
9
= 25
segundos
. ConseqüentementeU
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 eventosoletados. 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
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
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
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