ERELYN LUÍS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS ANÁLISE DE DESEMPENHO DE MÁQUINAS...

54
ERELYN LUÍS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS ANÁLISE DE DESEMPENHO DE MÁQUINAS VIRTUAIS USANDO BENCHMARK. BELÉM/PA 2011

Transcript of ERELYN LUÍS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS ANÁLISE DE DESEMPENHO DE MÁQUINAS...

ERELYN LUÍS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS

ANÁLISE DE DESEMPENHO DE MÁQUINAS VIRTUAIS USANDO BENCHMARK.

BELÉM/PA 2011

ERELYN LUIS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS

ANÁLISE DE DESEMPENHO DE MÁQUINAS VIRTUAIS USANDO BENCHMARK.

Trabalho de Conclusão de Curso apresentado ao Centro de Ciências Exatas e Tecnológicas da UNAMA - Universidade da Amazônia, como exigência parcial para obtenção do título de Bacharel em Ciência da Computação. Elaborado sobre orientação do Prof. MSc. Ananias Pereira Neto.

BELÉM/PA 2011

ERELYN LUÍS GONÇALVES ALVES JOÃO PAULO FERREIRA DOS SANTOS

ANÁLISE DE DESEMPENHO DE MÁQUINAS VIRTUAIS USANDO BENCHMARK.

Trabalho de Conclusão de Curso apresentado para obtenção do

grau de Bacharelado em Ciência da Computação.

Data da Defesa: ____/____/____ Conceito: __________________

Banca Examinadora:

_________________________________________________ Orientador: Prof. MSc. Ananias Pereira Neto

_________________________________________________

Membro: Prof. MSc. Max Trindade

_________________________________________________ Membro: Prof. MSc. Ricardo Ferreira

BELÉM/PA 2011

AGRADECIMENTOS

Agradecemos, em primeiro lugar, a Deus, por estar presente nos momentos

alegres e difíceis de nossa caminhada, dando-nos forças e sabedoria para

superarmos os embaraços e alcançarmos o nosso objetivo: concluirmos a

nossa graduação.

Eu (Erelyn Luis) agradeço ao Prof. Dr. Mauro Margalho Coutinho e ao Prof. Dr.

Afonso Jorge Ferreira Cardoso, por disponibilizarem seu tempo para avaliar o

trabalho que agora apresentamos. Agradeço também as minhas tias Alvina e

Ana Lúcia, pelo incentivo e apoio que sempre me deram para cursar e concluir

o curso superior que escolhi. Agradeço ainda à minha mãe pela ajuda que me

prestou na elaboração do TCC. E, finalmente, agradeço a companhia de minha

filha Ana Clara, cuja presença alegra minha vida, especialmente, nos finais de

semana que partilhamos.

Eu (João Paulo) agradeço à minha mãe, Ray Santos, mulher guerreira, grande

educadora que me deu a vida, pelo amor que me dedica, que desde cedo

mostrou o valor da vida e o compromisso de vivê-la de forma intensa, com

dignidade, com vigor e com a sabedoria de um peregrino que sempre está em

busca de novos caminhos. A senhora é e sempre será a base de tudo em

minha vida; e ao meu padrasto Moura, que jamais mediu esforços para que

esta conquista fosse realizada.

Agradecemos ainda aos nossos familiares, que tanto nos incentivaram e nos

deram o suporte necessário para seguirmos na vida acadêmica.

Ao nosso orientador, Prof. Msc. Ananias Pereira Neto, por sua compreensão e

sua enorme paciência em poder nos ajudar em nossas dúvidas ao longo do

curso.

Aos professores do curso de Bacharelado da Universidade da Amazônia

(UNAMA), os quais, durante o período do curso da graduação, oportunizaram o

aprimoramento de conhecimentos e contribuíram positivamente para

desenvolvermos habilidades no curso de Ciências da Computação.

A todos o nosso muito obrigado!

O tempo não perdoa os erros que cometemos... Ele é implacável:

passado é passado, e não há nada que possamos fazer diante desse fato.

Mas, a cada dia, temos a oportunidade de mudar e recomeçar devido a

um presente divino: o hoje!

Niara De Sousa Almeida

RESUMO

Este trabalho apresenta uma análise comparativa entre dois sistemas

operacionais anfitriões: o Windows Server 2008 x64 e o Linux CentOS x64.

Nessa comparação foram utilizadas duas ferramentas virtualizadoras: a

VirtualBox4.1.6 e a VMWare Workstattion8. Observamos as características

gerais, o desempenho e os recursos de cada um desses sistemas anfitriões

para que pudéssemos encontrar a melhor aplicação para cada um deles, bem

como verificar a eficiência de cada sistema, individualmente, desenvolvendo os

gráficos de desempenho de cada máquina virtual e sua plataforma. O objetivo

do estudo foi identificar o sistema anfitrião de melhor desempenho, seja com o

virtualizador VirtualBox4.1.6, seja com o virtualizador VMWare Workstattion8.

Foram abordados temas como a virtualização, as vantagens e os tipos de

virtualização, a paravirtualização e o conceito de benchmark. Concluímos,

neste estudo, que o melhor sistema operacional anfitrião encontrado, mediante

os testes realizados, foi o sistema Linux.

PALAVRAS-CHAVE: Sistemas operacionais anfitriões; Virtualização;

Benchmark; Compactação.

ABSTRACT

Our objective with this research, a comparative analysis between two host

operating systems: Windows Server 2008 x64 and x64 CentOS Linux. In this

comparison, we used two virtualization tools: VMWare and the VirtualBox4.1.6

Workstattion8. In this context, we note the general characteristics, performance and

resources of each of these host systems so that we could find the best application for

each, as well as verify the efficiency of each system individually, developing the

graphics performance of each machine and its virtual platform to identify the best

performing host system, either with the virtualizer VirtualBox4.1.6, either with the

VMware virtualized Workstattion8. Topics covered in virtualization, the benefits and

types of virtualization, paravirtualization and the concept of benchmarks. In

conclusion, this study, the best host operating system found by the tests performed,

the system was Linux.

KEY-WORDS: Operating Systems hosts. Virtualization. Benchmarks. Compaction.

LISTA DE FIGURAS

Figura 1: Organograma do ambiente de teste............................................................14

Figura 2: Modelo de Virtualização..............................................................................18

Figura 3: Tela da ferramenta VMWare executando o SO Windows...........................24

Figura 4: Tela da ferramenta VirtualBox.....................................................................25

Figura 5: Operação com números inteiros................................................................28

Figura 6: Operação com números fracionários..........................................................29

Figura 7: Operação com números dobrados .............................................................30

Figura 8: Teste de latência de comunicação local......................................................31

Figura 9: Teste de processador..................................................................................34

Figura 10: Teste virtual machine.................................................................................35

Figura 11: Controle de memória.................................................................................36

Figura 12: Stoprege device........................................................................................38

Figura 13: Redes locais..............................................................................................39

Figura 14: Compactação 7z em segundos.................................................................40

Figura 15: Compactação usando p7..........................................................................41

Figura 16: Resultado da Codificação de áudio usando Windows..............................42

Figura 17: Resultado Codificação de áudio usando Linux.........................................43

Figura 18: Codificação de vídeo no Linux..................................................................44

Figura 19: Codificação de vídeo usando Windows....................................................45

LISTA DE TABELAS

Tabela 1: Resultado dos teste com números.............................................................28

Tabela 2: Resultado dos testes com números fracionários........................................29

Tabela 3: Resultado dos testes com números dobrados............................................30

Tabela 4: Resultado do teste de latência de memória................................................32

Tabela 5: Resultado dos testes de processador.........................................................34

Tabela 6: Resultado dos testes de máquina virtual....................................................35

Tabela 7: Resultado dos testes de controle de memória............................................36

Tabela 8: Resultado dos testes de disco....................................................................38

Tabela 9: Resultado do teste de rede local...............................................................

13

SUMÁRIO

1 INTRODUÇÃO........................................................................................................13

1.1 VISÃO GERAL.....................................................................................................13

1.2 OBJETIVO............................................................................................................14

1.3 METODOLOGIA DO ESTUDO............................................................................14

1.3.1 Trabalhos relacionados..................................................................................15

1.3.2 Características do estudo...............................................................................16

1.4 ORGANIZAÇÃO DO TRABALHO........................................................................16

2 O PROCESSO DE VIRTUALIZAÇÃO....................................................................17

2.1 VANTAGENS DO PROCESSO DE VIRTUALIZAÇÃO.........................................29

2.2 TIPOS DE VIRTUALIZAÇÃO................................................................................20

2.2.1 A Emulação de Hardware ...............................................................................21

2.2.2 Virtualização Completa ..................................................................................21

2.2.3 Paravirtualização.............................................................................................22

2.2.4 Virtualização de Instruções (Instruction Set Virtualization)........................23

2.3 FERRAMENTAS DE VIRTUALIZAÇÃO...............................................................23

2.3.1 VMWare Workstation.....................................................................................24

2.3.2 Virtual Box........................................................................................................25

3 EXPERIMENTOS E RESULTADOS.......................................................................26

3.1 DESCRIÇÃO DO AMBIENTE...............................................................................26

3.2 ANÁLISE DE DESEMPENHO..............................................................................26

3.3 SOBRE O LMBENCH...........................................................................................27

3.3.1 Operações com Números Inteiros (Integer)..................................................27

3.3.2 Operações com Números fracionários (Floats)...........................................28

3.3.3 Operações com Números Dobrados (Double)..............................................29

3.3.4 Latência para a Comunicação Local.............................................................31

3.4 SOBRE O SISOFTWARE SANDRA 2012............................................................32

3.4.1 Testes de processamento da CPU.................................................................33

3.4.2 Testes com máquinas virtuais.......................................................................34

3.4.3 Testes com o controlador de memória..........................................................36

3.4.4 Testes de Disco...............................................................................................37

3.4.5 Teste de Rede Local........................................................................................38

14

3.5 COMPACTAÇÃO DE ARQUIVOS........................................................................39

3.6 CODIFICAÇÃO DE ÁUDIO..................................................................................41

3.7 CODIFICAÇÃO DE VÍDEO..................................................................................43

4 CONSIDERAÇÕES FINAIS....................................................................................46

REFERÊNCIAS..........................................................................................................48

APÊNDICES...............................................................................................................50

1 INTRODUÇÃO

1.1 VISÃO GERAL

Este trabalho foi desenvolvido com o propósito de verificar se há diferença

de desempenho na utilização de diferentes tipos de sistema operacionais anfitriões.

Escolheu-se o Windows e o Linux como sistemas anfitriões a serem testados. O

primeiro, por ser o mais utilizado; e o segundo; por ser um software livre. Outro

motivo importante foi o fato de existirem virtualizadores compatíveis com ambos os

sistemas (multiplataforma), a saber o VirtualBox4.1.6 e VmWare Worksattion8.

Existem tipos e técnicas de virtualização. Os tipos são a virtualização do

hardware, do sistema operacional e das linguagens de programação; as técnicas

são a virtualização total e a paravirtualização. No caso deste estudo, optou-se pela

virtualização total do sistema operacional, tendo em vista os recursos materiais

disponíveis na universidade para desenvolver os testes necessários.

Utilizou-se a técnica denominada benchmark, que, segundo Scalzo et al

(2007), é o ato de executar um programa de computador ou um conjunto de

programas, ou sequências operacionais, a fim de avaliar a performance de um

processador, memória, código de programação etc., quando são realizados uma

série de testes que possibilitam avaliar de forma consistente o desempenho de

determinado sistema operacional. Por meio do benchmark, é possível definir qual

ferramenta se encaixa melhor para cada tipo de situação de trabalho.

As empresas proprietárias do sistema anfitrião executam uma série de

testes-padrão e ensaios nos seus produtos (sistema operacional), mas o método

utilizado para os testes não estão disponíveis ao usuário e só divulgam os resultados

que lhes são favoráveis.

15

Por outro lado, o usuário não detém o conhecimento necessário ou

disponibilidade de tempo para fazer testes comparativos entre sistemas

operacionais. Recorre, via de regra, apenas aos manuais (feitos com base em

princípios científicos) e ao conhecimento empírico que detém quanto ao

funcionamento do sistema (hardware e software), e, especialmente, quanto ao

contexto de aplicação a que se destinam os dados.

Portanto, as análises que aqui serão apresentadas, poderão contribuir com

informações detalhadas sobre o desempenho dos sistemas operacionais Windows e

Linux diante de situações similares às testadas neste trabalho.

1.2 OBJETIVO

Realizar a análise comparativa entre dois sistemas operacionais anfitriões, o

Windows Server 2008 x64 e o Linux CentOS x64, utilizando duas ferramentas

virtualizadoras: a VirtualBox 4.1.6 e a VMWare Workstattion 8.

1.3 METODOLOGIA DO ESTUDO

Após o levantamento bibliográfico, iniciou-se a execução dos testes. Utilizou-

se o hardware com 8GB de memória RAM, sendo que dessa memória, 4GB foram

destinados inteiramente para executar a máquina virtual.

O processador utilizado foi um Intel Core 2 Quad Q9550S, sendo

disponibilizados apenas dois núcleos para as máquinas virtuais. Instalou-se

primeiramente o sistema anfitrião; sobre ele, os virtualizadores; e sobre estes, as

máquinas virtualizadas, com dois processadores, 4 GB de memória e 40 GB de HD,

conforme Figura 1.

16

W

L

W

L

W

L

W

L

│ │ │ │ │ │ │ │

VMWare VirtualBox

VMWare VirtualBox

│ │

Windows (sistema anfitrião) Linux (sistema anfitrião)

│ │

HARDWARE

Figura 1: Organograma do ambiente de teste

Os sistemas anfitriões usados foram o Windows Server 2008 x64 e o Linux

CentOS x64; os vitualizadores, o VirtualBox 4.1.6 e o VMWare Workstattion 8; e as

máquinas virtualizadas, o Windows Server 2008 x64 e o Linux Debian 6.0.3 x64.

Optou-se por essa versão do Linux por proporcionar maior facilidade na aplicação

dos testes. Para os testes não terem problemas cada máquina virtual foi executada

individualmente. Os detalhes de cada teste estão comentados no Capítulo 3.

1.3.1 Trabalhos relacionados

Na revisão bibliográfica, encontrou-se poucos trabalhos acadêmicos

disponíveis sobre testes em máquinas virtuais. Assim, nossa referência foi centrada

em dois artigos, por estes se aproximarem do estudo que se queria empreender, os

quais foram: “Virtualização como alternativa para ambiente de servidores”, de Silva

et al (2008) e “Comparativo entre ferramentas de virtualização”, de Baruchi (2008).

No primeiro estudo, de Silva et al (2008), foram realizados testes de

desempenho para comparar três virtualizadores: o KVM, Xen 3.0.3 e VMware Server

2. Os virtualizadores foram executados em um sistema anfitrião Linux CentOS 5.6

com kernel 2.6.18, com máquinas virtualizadas Linux e testes em Linux, em todos os

casos. Foram executados testes de beachmark com LMBench, codificação de vídeo

no Linux e testes no servidor Web Apache; o teste transferência de arquivos foi

realizado tanto com cópia de um arquivo de 4 GB para o Windows quanto com o

Linux. Em todas as máquinas virtuais foi alocado somente um processador para

realizar os referidos testes.

A análise de Baruchi (2008) foi efetuada através de testes de desempenho

que compararam três virtualizadores: o VMware Server 1.7, VirtualBox 2.0 e o

17

VirtualServer 2005. Baruchi (2008) utilizou o Windows 2003 Server R2 SP2 como

sistema anfitrião e virtualizou o sistema operacional de Desktop Windows XP

Profissional SP2. Os testes foram realizados sobre o sistema operacional Windows

XP, além dos testes de comparação com o sistema desktop sem estar virtualizado.

Entende-se que os testes aplicados por Baruchi (2008) podem ter alguns

problemas de confiabilidade, devido à utilização de um sistema operacional desktop

que tem algumas limitações quanto a conexões simultâneas de rede e um pior

gerenciamento entre os processos do sistema operacional. Os testes aplicados em

ambas as situações foram de Benchmark com PCMark 2005, teste com banco de

dados e teste de transferência de arquivos por FTP.

1.3.2 Características do estudo

Neste trabalho, utilizou-se dois virtualizadores multiplataforma: o VirtualBox

4.1.6 e o VMware Worstation 8.0, em suas versões atualizadas até 11 de novembro

de 2011. As análises aqui realizadas avançam em quatro aspectos com relação aos

trabalhos anteriores:

1. Utilizou-se mais de um sistema anfitrião para realizar os testes –

Windows e Linux –, sendo este o principal escopo do estudo;

2. Virtualizou-se dois sistemas também para realização de testes, tanto

no Windows como no Linux;

3. foram usados somente sistemas 64 bits por tornar possível alocar

4GB de memória entre as maquinas, que também só utilizavam SO 64

bits;

4. alocou-se dois processadores para máquinas virtualizadas para

realizar os testes com multithreading.

1.4 ORGANIZAÇÃO DO TRABALHO

O presente trabalho foi estruturado em quatro capítulos. No primeiro

capítulo, apresenta-se as informações gerais a respeito do estudo. No segundo

capítulo, comenta-se acerca dos principais conceitos e da situação atual do

processo de virtualização, bem como suas vantagens e os tipos de virtualização.

No terceiro capítulo, detalha-se a metodologia empregada para a aplicação

dos testes escolhidos, bem como as características gerais, o desempenho e os

18

recursos de cada um dos sistemas operacionais anfitriões analisados. Também,

nesse capítulo, discute-se os resultados obtidos, ilustrados com os gráficos de

desempenho. Por fim, apresenta-se as conclusões a que se chegou após a

realização dos testes e a análise dos resultados.

Esclarece-se que este estudo foi desenvolvido de forma independente, visto

que não há vínculo de qualquer espécie entre o pesquisador-analista e as empresas

proprietárias. Dessa forma, a sociedade tem ao seu alcance um resultado sem

induções comerciais, que expõe as características reais de cada máquina estudada,

minimizando as falhas na hora da escolha.

19

2 O PROCESSO DE VIRTUALIZAÇÃO

Para se compreender o processo de virtualização, faz-se necessário

apresentar o que são sistemas operacionais. Na perspectiva do usuário ou

programador (visão top-down), é uma abstração do hardware, que faz o papel de

intermediário entre o aplicativo (programa) e os componentes físicos do computador

(hardware). Na visão bottom-up, de baixo para cima, é um gerenciador de recursos,

que controla quais e quando aplicações (processos) podem ser executadas e que

recursos (memória, disco, periféricos) podem ser utilizados. Portanto, Sistema

Operacional (SO ou OS, do inglês Operating System) são programas complexos,

cuja atribuição é responder por todo o funcionamento de uma máquina a partir dos

comandos impostos pelo usuário.

Um sistema operacional possui as seguintes funções: gerenciamento de

processos; gerenciamento de memória; sistema de arquivos; entrada e saída de

dados Coelho (2009). Dentre os sistemas operacionais existentes, podemos citar

Windows, Linux e Mac OS X, mais conhecidos por serem utilizados em

computadores pessoais.

Esses sistemas operacionais podem ser virtualizados, isto é, passar por um

processo de virtualização. De acordo com Coelho (2009), “virtualização” é o

processo de executar diferentes sistemas operacionais dentro de uma mesma

máquina, aproveitando ao máximo a capacidade do hardware, através da emulação

de ambientes isolados, isto é, fornecendo ambientes de execução independentes a

diferentes sistemas em um mesmo equipamento físico, concomitantemente.

Com essa técnica, aumenta-se a quantidade de softwares que podem ser

utilizados sobre um mesmo hardware. Os ambientes assim criados são chamados

de máquinas virtuais. Portanto, máquinas virtuais são computadores fictícios

elaborados por programas de simulação, com memória, processador e outros

recursos virtualizados.

A sua existência de máquinas virtuais não é recente. Segundo Jones (2006),

foi nos anos 60, do século XX, que se fez referência à realização de um processo

virtualização, utilizando-se o equipamento IBM 7044 Compatible Time-Share System

(CTSS)1. A figura 2 mostra uma melhor compreensão:

1 Em uma tradução livre, Sistema Compatível com Compartilhamento de Tempo. O equipamento, denominado

"Projeto Atlas", resultou de um estudo conjunto entre o MIT (Massachusetts Institute of Technology – Instituto

20

Fonte: ITconsultoria.

Figura 2: Modelo de Virtualização.

À época, o chamado “Supervisor”, sistema operacional do mainframe IBM

704 M44/44X, executava duas máquinas virtuais, uma para o sistema; e outra para a

execução de programas. Essa tecnologia serviu de base para outros computadores,

como o mainframe IBM System/360 modelo 67, lançado em 1966, no qual o

hardware do equipamento era inteiramente acessado por meio de uma interface

chamada Virtual Machine Monitor (VMM), o qual funcionava diretamente no

hardware básico do equipamento, permitindo a execução de máquinas virtuais.

Assim, cada máquina virtual passava a ser uma nova instância do mesmo

sistema operacional-base que estivesse em execução. Por esse fato, o antigo termo

"Supervisor" foi substituído por Hypervisor, por ter se tornado “um software que

provê ambiente de virtualização para o sistema operacional rodando acima dele”

(SILVA et al, 2008).

A partir da década de 1970, a IBM lançou uma série de mainframes. Dentre

elas, criou o System/370 e, logo após, o sistema operacional VM/370, o qual

permitia a criação de múltiplas máquinas virtuais para os mainframes dessa série. O

VM/370, hoje, é conhecido como IBM z/VM e mantém compatibilidade total com os

aplicativos desenvolvidos ainda para o System/370, bem como com sistemas

operacionais para os mainframes da série System/Z.

de Tecnologia do Massachusetts), a Ferranti Ltd. e a University of Manchester (universidade de Manchester),

no qual foi utilizado um mainframe com implementação de chamadas supervisoras (SILVA et all, 2008).

21

Nas décadas de 80/90, no entanto, a virtualização perdeu forças devido à

criação de novas aplicações cliente-servidor, provocando, dessa forma, o declínio da

plataforma mainframe. Acredita-se que o alto custo inicial de um mainframe

incentivou as empresas a investirem em servidores de plataforma2 x86. Por esse

motivo, a plataforma X86 consolidou-se como recurso interessante para o uso da

virtualização.

De acordo com a empresa VMware Inc apud, Baruchi (2008), pode-se citar

três situações que contribuíram para a consolidação da plataforma X86:

1. a larga ascensão da plataforma Linux nos servidores;

2. a adoção do sistema operacional Windows em desktops;

3. A disseminação do sistema operacional Windows nos anos 90.

Os mainframes tinham grande capacidade de processamento, ao contrário

da fase inicial da plataforma x86, haja vista que esta não era projetada visando a

virtualização, como os mainframes sempre o foram, já que visavam a virtualização.

Portanto, em cada implementação de algum servidor x86 típico, o teto de uso das

CPUs acabava sempre entre 10 a 15% da capacidade total desse servidor. Isso

acontecia porque, para cada servidor x86, geralmente se utilizava uma única

determinada aplicação, cujo objetivo era o de garantir boa margem de risco contra

problemas que pudessem comprometer a produção VMware Inc apud, Baruchi

(2008).

Todavia, quando, em 1999, a VMware Inc. focalizou a virtualização para o

uso da plataforma x86, potencializou a eficiência dos equipamentos dessa

plataforma. Esse procedimento possibilitou o aproveitamento de servidores x86, de

propósito geral, para prover uma estrutura compartilhada, oferecendo ainda

isolamento completo, mobilidade e liberdade de escolha para sistemas operacionais

em ambientes de servidores. Baruchi ( 2008).

2.1 VANTAGENS DO PROCESSO DE VIRTUALIZAÇÃO

A grande vantagem oferecida pela virtualização se dá por esta suportar

várias aplicações em um só sistema físico, quebrando o paradigma vigente até a

2 Na informática, o termo “plataforma” designa a tecnologia utilizada na Tecnologia da Informação, que facilita

a integração dos diversos elementos dessa estrutura. Pode ser compreendida como um processo operacional.

22

década de 70 de “uma aplicação, um servidor”. Ao virtualizar determinado número

de sistemas subutilizados em um único servidor físico, a empresa economiza espaço

em estrutura física, espaço em disco, refrigeração, energia e tem a possibilidade de

centralizar o gerenciamento.

Na “Consolidação de Servidores”, é necessário determinar quais os

servidores podem ou não ser virtualizados, fazendo uma avaliação dos recursos

existentes. Para tanto, pode-se utilizar ferramentas como MRTG ou Cacti (ambos

utilizam SNMP4) para monitorar a performance e o uso de recursos em cada

servidor. Uma vez virtualizado, é preciso fazer um acompanhamento do

desempenho para verificar se o novo servidor físico ficou sobrecarregado. Caso isso

ocorra, é possível migrar determinado servidor virtual para outro servidor físico com

o mesmo em operação, sem necessidade de reboot. Dessa forma, faz-se o

balanceamento de carga entre vários servidores físicos hospedeiros sem afetar o

funcionamento das máquinas virtuais.

A virtualização também é importante para se analisar a redundância em data

centers, procedimento indispensável em ambientes 24 x 7 (24 horas por dia, sete

dias da semana). Com a migração em tempo real, uma vez identificada a

possibilidade de falha de determinada máquina física hospedeira (quebra de

espelhamento, fonte queimando, memória despejando etc), basta migrarmos as

máquinas virtuais para outros servidores físicos.

Porém, se acontecer alguma falha não esperada em algum servidor

hospedeiro, todas as máquinas virtuais daquele equipamento podem ser afetadas.

Por exemplo, caso todas as fontes de um servidor queimem ao mesmo tempo, todas

as máquinas virtuais dele desligarão. Ou, caso aconteça alguma falha nos discos do

servidor ou na storage de armazenamento, todas as máquinas virtuais poderão ser

corrompidas. Daí a importância do monitoramento do sistema e do tipo de

virtualização a ser aplicada.

2.3 TIPOS DE VIRTUALIZAÇÃO

Existem vários usos e maneiras de proceder a virtualização. Escolheu-se

quatro delas para se comentar, por serem as mais utilizadas, a saber:

Emulação de hardware;

Virtualização Completa;

23

Paravirtualização;

Instruction Set Virtualization (Virtualização de Instruções).

2.3.1 A Emulação de Hardware

Segundo Jones (2006), a emulação de hardware é atualmente a forma mais

complexa de virtualização. Devido a sua complexidade, gera grandes overheads,

prejudicando o desempenho do sistema operacional guest3. Nesse método, todo o

hardware de uma máquina virtual é criado via software no sistema hospedeiro para

emular o hardware proposto. Ou seja, até o processador da máquina virtual precisa

ser criado via software, o que é feito geralmente em assembly.

Para emulações de alta-fidelidade, incluindo transições de informação entre

registradores para memória cache e criação de pipelines na CPU, a performance

pode ser, facilmente, mil vezes menor (JONES, 2006). A emulação de hardware,

entretanto, também tem vantagens, por exemplo, com ela é possível rodarmos um

sistema operacional guest sem qualquer modificação ou adaptação.

2.2.2 Virtualização Completa

A virtualização completa, também conhecida como "virtualização nativa", é

outro método utilizado para a virtualização. Esse modelo usa uma máquina virtual

através da mediação entre o sistema operacional hospedeiro (host) e o guest4. A

palavra "mediação" é utilizada, pois o VMM faz a troca entre o sistema operacional

virtualizado e o hardware do equipamento. A virtualização completa é mais rápida

que a emulação de hardware, mas a performance também é menor do que a do

mesmo sistema operacional rodando nativamente. Nesse aspecto, a grande

vantagem da virtualização completa é que o sistema operacional pode rodar sem

modificações e a desvantagem é que a máquina guest não pode rodar em host de

arquitetura diferente.

3 Tipo de máquina virtual em que o monitor é implementado entre o hardware e os sistemas convidados (guest

system). 4 Tipo de máquina virtual em que o monitor é implementado como um processo de um sistema operacional real,

denominado sistema anfitrião (host system)

24

Um grande obstáculo para a virtualização completa foi o fato de que, em

dezessete instruções específicas dos processadores da plataforma x86, geravam

erros quando essa camada de interpretação era criada, o que fazia o sistema

operacional guest gerar erros críticos durante sua execução Baruchi (2008). Esses

erros variavam desde informações no sistema operacional, até a finalização

inesperada da aplicação. Assim, essas dezessete instruções foram apontadas como

um importante marco para a criação do primeiro ambiente de virtualização completa

da plataforma x86, o VMware Workstation, cuja primeira edição ocorreu em 1999.

2.2.3 Paravirtualização

A paravirtualização é uma técnica que tem poucas semelhanças com a

virtualização completa. Esse método usa o hypervisor para acesso compartilhado ao

hardware do equipamento, e também integra códigos de virtualização dentro do

sistema operacional nativo, agregando, nele, as funções de gerenciamento do

hypervisor.

Baruchi (2008) explica que por meio da paravirtualização, o hypervisor é

criado como uma camada abaixo do sistema operacional, o qual por sua vez,

multiplexa o acesso dos guests ao hardware do equipamento. Assim, o próprio

sistema operacional nativo (e, nesse caso, de gerenciamento) é transformado em

máquina virtual5.

Dessa maneira, uma vez que os sistemas operacionais sejam adaptados, a

interação entre as máquinas virtuais e a máquina física é otimizada, o que aumenta

o desempenho. Porém, a grande desvantagem desse modelo continua sendo a

dependência da alteração do sistema operacional de gerenciamento e dos guests,

para que possam interagir com o hypervisor ao invés do hardware físico.

5 Segundo SIQUEIRA (apud BARUCHI, 2008), este modelo como hypervisor obtém preferência para os

ambientes virtualizados, pois, os hóspedes sabem perfeitamente que rodam em um ambiente virtual. Para isso, os

guests precisam ser corrigidos, o que só é possível conseguir em sistemas de código aberto

25

2.2.4 Virtualização de Instruções (Instruction Set Virtualization)

Outro aspecto mais recente da virtualização é chamado Instruction Set

Virtualization (Virtualização de Instruções). Nesse modelo, um conjunto de

instruções virtuais é traduzido para uma instrução física destinada à camada de

hardware do equipamento. Assim, com o código original sendo executado dentro de

uma máquina virtual, a tradução ocorre do primeiro (set de instruções) para um

segundo seguimento de código, efetuando a mediação entre a aplicação e o sistema

operacional,um exemplo recente desse modelo é utilizado no processador Crusoe,

da Transmeta, (empresa que criou esse processador).

A arquitetura desse processador implementa tradução binária com o nome

Code Morphing. O mesmo processo também é utilizado para a execução de binários

de diferentes arquiteturas em um sistema operacional de outra plataforma, como, por

exemplo, para rodar binários de um sistema Linux plataforma PowerPC, em um

Linux plataforma x86, com o software “nspluginwrapper”.

2.3 FERRAMENTAS DE VIRTUALIZAÇÃO

As ferramentas de virtualização, conhecidas como Máquinas Virtuais (Virtual

Machine - VM), são softwares que representam as funcionalidades de um hardware

(LAURENO et al., 2006). Os recursos dessas VMs, referentes à memória,

processador etc., são virtualizados quando em execução em um computador. Dessa

forma, os recursos do computador ficam divididos em vários ambientes de execução.

As Máquinas Virtuais podem executar softwares tanto como sendo

servidores como clientes. Entretanto, o sistema de virtualização não depende

apenas do software, é necessário que o hardware seja capaz de suportar o processo

de virtualização. Esse processo é uma tecnologia que cria uma camada de software

que faz uma comunicação direta com o hardware, fazendo com que haja a

possibilidade de que mais de um sistema operacional seja executado em um mesmo

computador.

Atualmente, existem várias ferramentas que permitem o processo de

virtualização. A seguir, apresenta-se duas ferramentas de virtualização bastante

utilizadas nos dias de hoje.

26

2.3.2 VMWare Workstation

VMware Workstation é uma máquina virtual da VMware feita para desktops

que permite a utilização de um sistema operacional dentro de outro. É executado

como um programa dentro de um sistema operacional hospedeiro, o qual é

responsável pela abstração dos dispositivos disponibilizados para o sistema

operacional que será executado dentro da máquina virtual.

Essa Virtual Machine é como um aplicativo visto pelo sistema anfitrião, ou

seja, cria um hypervisor que tem a capacidade de traduzir o sistema guest para o

host. Essa ferramenta é utilizada em ambientes de desenvolvimento, no qual se

necessita testar uma aplicação em várias plataformas; em testes de sistemas

operacionais, por exemplo, podemos usar para executar o Windows dentro do Linux,

ou vice-versa, um de seus usos mais comuns; dentre outras aplicações. A Figura 3

apresenta a tela da ferramenta que mostra o sistema operacional Windows sendo

executado no sistema hospedeiro Linux.

Figura 3: Tela da ferramenta VMWare executando o SO Windows.

27

2.3.2 Virtual Box

O VirtualBox é um software da Oracle e possui versões tanto para Windows

quanto para Linux, MacOS X e outros. Assim como o VMWare, o VirtualBox é uma

máquina virtual bastante utilizada, cujo objetivo é virtualizar sistemas para que se

possa testar programas sem que a máquina física seja afetada.

Uma das vantagens do VirtualBox é o fato de ele ter interfaces bem

definidas, o que torna mais fácil o controle de várias interfaces de uma só vez, além

de ter uma série de recursos extras disponíveis.

A Figura 4 apresenta a tela da utilização da ferramenta, pronta para fazer a

instalação do sistema operacional visitante.

Figura 4: Tela da ferramenta VirtualBox.

.

28

3 EXPERIMENTOS E RESULTADOS

3.1 DESCRIÇÃO DO AMBIENTE

Para executar a comparação dos sistemas operacionais anfitriões, foi

instalado na máquina física o sistema operacional CentOS 6 Linux 64 bits, com

kernel 2.6.32, Windows 2008 SP2 Standard X64, e 8 GB de memória RAM, sendo

que dessa memória, 4 GB foram destinados inteiramente para a máquina virtual em

execução. Para o teste não ter problemas de divergências com a utilização de várias

máquinas virtuais diferentes, cada máquina virtual foi executada individualmente.

O processador utilizado para essa execução foi um Intel Core 2 Quad

Q9550S, sendo disponibilizados apenas dois núcleos para as máquinas virtuais.

Foram utilizados dois HDs de 640 GB, um para cada sistema operacional,

destinando 40 GB para cada máquina virtual, num total de oito máquinas, sendo

quatro com Linux Debian 6.0.3 e quatro com Windows 2008 SP2 Standard X64.

As máquinas virtuais foram configuradas em um ambiente de produção

padronizado em que as tarefas designadas foram iguais para cada servidor

virtualizado, simulando uma situação real. Essas tarefas tiveram a finalidade de

testar o desempenho de cada máquina virtual com softwares para benchmark,

codificação de vídeo, compactação de arquivos e codificação de áudio. Ressalta-se

que todos os sistemas operacionais tiveram suas atualizações (update) processadas

até dia 10 de novembro de 2011, quando os testes começaram a ser efetuados.

3.2 ANÁLISE DE DESEMPENHO

Cada máquina virtualizada foi submetida a testes de processamento, de I/O

e de conectividade, a fim de se analisar a performance de cada uma como um todo.

As tarefas submetidas foram:

Compactação de arquivo no formato 7z

Codificação de vídeo com o codec XVid;

Análise de performance geral com o software LMBench;

Análise de performance geral com software SiSoftware Sandra.

Os testes de performance individuais – a codificação de vídeo, codificação

do áudio, compressão de dados, análise de desempenho com o LMBench e

29

SiSoftware Sandra – foram realizados com o sistema operacional host em IDLE19,

evitando, assim, a influência nos testes de cada uma delas.

3.3 SOBRE O LMBENCH

A execução do LMBench versão 3 Alpha 9, nas máquinas virtuais, testou os

seguintes itens em cada uma delas:

Operações com números do tipo integer - inteiro;

Operações com números do tipo float – ponto flutuante;

Operações com números do tipo double – números duplos;

Latência de comunicação local;

Não é objetivo desse documento o detalhamento completo de cada um dos

subtestes realizados, visto que pode ser obtido em uma máquina com o sistema

operacional Linux que possua o LMBench instalado, através do comando man

lmbench.

O LMBench foi executado em cada máquina virtual até a obtenção do

resultado. Os resultado escritos (.txt) devolvidos pelo LMBench, em cada host,

constam como apêndice neste trabalho. A versão utilizada era a última disponível

nos repositórios da distribuição adotada pelo grupo, e apesar de ser uma versão

Alpha, não foi demonstrado qualquer sinal de instabilidade durante toda a realização

dos testes citados.

3.3.1 Operações com Números Inteiros (Integer)

Esse teste mede a latência das operações com números inteiros, na

máquina virtual, com os operadores aritméticos Integer Addiction (ADD) , Integer

Multiply (MUL), Integer Division (DIV) e Integer Modal (MOD) e o operador lógico

binário Integer Bit (XOR). A Figura 5 representa o comparativo de tempo, em

nanosegundos, para a realização de cada uma das operações descritas utilizando

números inteiros. Quanto menor o resultado obtido, maior a eficiência em cada

máquina virtual.

Como se pode observar na Tabela 1 e na Figura 5, apenas no operador

Integer Multiply (MUL) o Windows (Apêndices A e B) se equipara ao desempenho do

Linux (Apêndices C e D), com o virtualizador VirtualBox. Em todos os demais, os

30

valores dos operadores do Linux foram inferiores aos do Windows, tanto com o

virtualizador VMWare, quanto com o VirtualBox, isto é, o sistema anfitrião Linux

obteve melhor resultado no teste Integer.

0,00

2,00

4,00

6,00

8,00

10,00

12,00

Interger Division Interger Mod Interger Bit Interger Multiply Interger Addiction

Windows VirtualBox Windows VmWare Linux VirtualBox Linux VmWare

Figura 5: Operação com números inteiros

Windows Linux

VirtualBox VmWare VirtualBox VmWare

Integer Division 8,1700 10,3300 7,4800 7,3500

Integer Mod 9,6700 10,8400 7,8700 7,7400

Integer Bit 0,3900 0,5000 0,3700 0,3600

Integer Multiply 0,1100 0,1500 0,1100 0,1100

Integer Addiction 0,2000 0,2500 0,1800 0,1800 Tabela 1: Resultado dos testes com números

A tabela 1, mostra os valores em nanosegundos das operações com

números inteiros em cada virtualizador.

3.3.2 Operações com Números Floats

Esse teste mede a latência das operações com números fracionados,

representados como pontos flutuantes (Float), na máquina virtual, com os

operadores aritméticos Float Addiction (ADD) , Float Multiply (MUL), Float Division

31

(DIV), além do Float Bogomflops6 do Linux. A Figura 6 representa o comparativo de

tempo, em nanosegundos, para a realização de cada uma das operações descritas

utilizando números fracionados (tipo float). Quanto menor o resultado obtido, maior a

eficiência em cada máquina virtual.

Como mostra a Tabela 2, o sistema anfitrião Windows (Apêndices A e B)

apresentou pior desempenho (valores inferiores) que o Linux (Apêndices C e D),

com os dois virtualizadores.

0,00

1,00

2,00

3,00

4,00

5,00

6,00

7,00

8,00

9,00

Float Division Float BogomFlops Float Multiply Float Addiction

Windows VirtualBox Windows VmWare Linux VirtualBox Linux VmWare

Figura 6: Operação com números do tipo float

Windows Linux

VirtualBox VmWare VirtualBox VmWare

Float Division 8,0300 7,7800 5,6900 5,5600

Float BogomFlops 4,5700 6,0500 4,4200 4,3200

Float Multiply 2,0300 2,0100 1,4800 1,4300

Float Addiction 1,3100 1,5100 1,1400 1,0800 Tabela 2: Resultado dos testes com números fracionários

A tabela 2 mostra os valores em nanosegundos das operações com números

fracionários de cada máquina virtual.

3.3.3 Operações com Números Double

6 Bogomflot é a aglutinação de Bogo (teste do kernel do Linux), mais m (mega - 10

6), mais flop (pontos

flutuantes por segundo).

32

Esse teste mede a latência das operações com números double,

representados como pontos flutuantes com precisão dupla, na máquina virtual,

recorrendo aos operadores aritméticos Double Addiction (ADD), Double Multiply

(MUL), Double Division (DIV), além do Double BogoMflops do Linux. A Figura 7

representa o comparativo de tempo, em nanosegundos, para a realização de cada

uma das operações descritas utilizando números dobrados (tipo double). Quanto

menor o resultado obtido, maior a eficiência em cada máquina virtual.

Também nesse teste, como demonstrado na Tabela 3, o sistema anfitrião

Windows (Apêndices A e B) foi superado pelo sistema anfitrião Linux (Apêndices C e

D), com os dois virtualizadores.

0,00

2,00

4,00

6,00

8,00

10,00

12,00

14,00

Double Division Double BogomFlops Double Multiply Double Addiction

Windows VirtualBox Windows VmWare Linux VirtualBox Linux Vmware

Figura 7: Operação com números double

Windows Linux

VirtualBox VmWare VirtualBox Vmware

Double Division 12,0900 11,8000 8,6400 8,3800

Double BogomFlops 7,4900 10,1200 7,3700 7,1800

Double Multiply 2,5300 2,5100 1,8300 1,7900

Double Addiction 1,4300 1,5100 1,1000 1,0700 Tabela 3: Resultado dos testes com números double

A tabela 3 mostra os valores em nanosegundos das operações com

números dobrados de cada máquina virtual

33

3.3.4 Latência para a Comunicação Local

Esse teste mede a latência das operações com os protocolos de rede TCP

(Transmission Control Protocol) e UDP (User Datagram Protocol). Foram testados

ambos os protocolos e ainda realizados os testes de chamada remota de

procedimento usando TCP (RPC/TCP) e usando (RPC/UDP). A Figura 8 representa

o comparativo de tempo, em microsegundos, para a realização de cada uma das

operações descritas. Quanto menor o resultado obtido, maior eficiência do sistema

anfitrião.

Foi verificado que com o virtualizador VirtualBox, em todos os testes de

latência, o sistema anfitrião Windows (Apêndice A) obteve melhor resultado, sendo

até 40% melhor que o Linux (Apêndice C). Já com o virtualizador VMware

Workstation, em quase todos os testes, o Linux (Apêndice D) obteve melhor

desempenho; somente o de TCP o sistema Windows (Apêndice B) teve melhor

resultado, como pode ser verificado na Tabela 4.

0,0

50,0

100,0

150,0

200,0

250,0

300,0

RPC/TCP RPC/UDP TCP UDP

Windows VirtualBox Windows VmWare Linux VirtualBox Linux VmWare

Figura 8: Teste de Latência comunicação local

34

Windows Linux

VirtualBox VmWare VirtualBox VmWare

RPC/TCP 190,2122 56,2373 266,9244 48,1200

RPC/UDP 145,2927 33,8821 224,4395 19,4773

TCP 174,0352 44,3202 252,2860 86,3218

UDP 170,7215 20,2098 194,0536 15,2951 Tabela 4: Resultado do teste de latência de memória

A tabela 4 mostra os valores em micro segundos dos testes de latência

memória em cada virtualizador

3.4 SOBRE O SISOFTWARE SANDRA 2012

Foi utilizado o software SisSoftware Sandra 2012 (System ANalyser,

Diagnostic and Reporting Assistant), o qual é um programa de diagnóstico e

benchmark. A versão utilizada foi a última disponível no site oficial do fabricante.

Nas máquinas virtuais Windows e Linux, com o referido software, foram

realizados os seguintes testes:

Testes de processamento da CPU;

Testes com máquinas virtuais;

Testes com o controlador de memória,

Testes de Disco;

Teste de Rede Local.

Considerou-se não ser conveniente detalhar cada um dos subtestes

realizados face ao grande número deles, o que dificultaria a análise do estudo, por

torná-lo extenso e prolixo. Pelo mesmo motivo, não se incluiu ao trabalho o resultado

escrito (.txt) devolvido pelo SiSoftware Sandra em cada host. Com relação à

descrição dos testes, a mesma pode ser obtida em uma máquina com o sistema

operacional Windows que possua o SiSoftware Sandra instalado, através do help do

software.

O SiSoftware Sandra foi instalado em cada máquina virtual, separadamente,

até a obtenção do resultado. Após cada teste, reinicializou-se o sistema para que a

memória dele (sistema) fosse limpa, evitando, assim, que uma máquina virtual

provocasse algum efeito na outra.

35

3.4.1 Testes de processamento da CPU

Foram realizados testes de processamento da CPU, em que a melhor

eficiência do sistema operacional anfitrião e demonstrada quanto maior o resultado

do teste. Executou-se os testes abaixo:

Dhrystone ALU, que testa a performance aritmética com inteiros;

Whetstone SSE3, que testa a performance aritmética de pontos flutuantes

utilizando instruções SSE3;

Multi-MediaInteger, que testa operações com inteiros, utilizando instruções

multimídia SS3;

Multi-MediaFloat, que testa operações de ponto flutuante float, utilizando

instruções multimídia SS2;

Multi-Media Double, que testa operações de ponto flutuante double,

utilizando instruções multimídia SS2;

Multi-CoreEfficiencyInter-Core Bandwidth, que realiza o teste de eficiência

da utilização de múltiplas CPUs.

Como se pode observar na Tabela 5, com o virtualizador VirtualBox, o

sistema anfitrião Windows superou discretamente – > 0,03 GB/s – o Linux. Da

mesma forma, com o virtualizador VMWare, o desempenho do Windows foi melhor,

revelando 2,69 GB/s contra 1,21 GB/s do Linux. Nos demais testes, o sistema

anfitrião Linux obteve melhor resultado, conforme fica evidente na Figura 9.

36

0,0

5,0

10,0

15,0

20,0

25,0

30,0

Dhrystone ALU (GIPS) Whetstone SSE3

(GFLOPS)

Multi-Media Integer

x8 SSSE3 (GIPS)

Multi-Media Float x8

SSE2 (GFLOPS)

Multi-Media Double

x4 SSE2 (GFLOPS)

Multi-Core Efficiency

Inter-Core Bandwidth

(GB/s)

WINDOWS VIRTUALBOX WINDOWS VMWARE LINUX VIRTUALBOX LINUX VMWARE

Figura 9: Teste de processador

WINDOWS LINUX

VIRTUALBOX VMWARE VIRTUALBOX VMWARE

Dhrystone ALU (GIPS) 23,57 24,75 24,79 25,28

Whetstone SSE3 (GFLOPS) 16,73 18,43 17,62 19,00

Multi-Media Integer x8 SSSE3 (GIPS) 16,41 25,16 17,15 26,00

Multi-Media Float x8 SSE2 (GFLOPS) 15,84 16,83 16,92 17,32

Multi-Media Double x4 SSE2 (GFLOPS) 8,21 8,73 8,78 9,00

Multi-Core Efficiency Inter-Core Bandwidth (GB/s) 1,23 2,69 1,20 1,21

Tabela 5: Resultado dos testes de processador

A tabela 5 mostra os valores com seus respectivos tempos dos testes em

cada máquina virtual.

3.4.2 Testes com máquinas virtuais

Os testes foram realizados utilizando-se máquinas virtuais em JAVA 7update

1 e .NET 4.0, além dos testes aritméticos, com pontos flutuantes e multimídia,

totalizando dez testes. Nesses testes, tem-se a melhor eficiência quanto maior o

resultado.

Aqui também o sistema anfitrião Linux obteve melhor resultado. O Windows

teve melhor desempenho em três testes. Com o virtualizador VMWare, obteve 37,62

GIPS e 7,14 MPix/s nos testes Dhrystone Java e Multi-MediaInteger Java,

respectivamente, contra 36,65 GIPS e 7,00 MPix/s do Linux. Com o virtualizador

37

VirtualBox, apresentou 1,00 GLOPS contra 12,23 GLOPS do Linux no teste

Whetstone Java.

Os resultados estão discriminados na Tabela 6 e melhor visualizados na

Figura 10..

,

0,0

5,0

10,0

15,0

20,0

25,0

30,0

35,0

40,0

Dhrystone .NET

(GIPS)

Whetstone .NET

(GFLOPS)

Multi-Media Integer

.NET (MPix/s)

Multi-Media Float

.NET (MPix/s)

Multi-Media Double

.NET (MPix/s)

Dhrystone Java

(GIPS)

Whetstone Java

(GLOPS)

Multi-Media Integer

Java (MPix/s)

Multi-Media Float

Java (MPix/s)

Multi-Media Double

Java (MPix/s)

WINDOWS VIRTUALBOX WINDOWS VMWARE LINUX VIRTUALBOX LINUX VMWARE

Figura10: Teste virtual machine

Tabela 6: Resultado dos testes de máquina virtual

A tabela 6 mostra o resultado em seus respectivos tempos dos testes de

cada máquina virtual

WINDOWS LINUX

VIRTUALBOX VMWARE VIRTUALBOX VMWARE

Dhrystone .NET (GIPS) 4,18 5,39 5,50 5,50

Whetstone .NET (GFLOPS) 11,10 11,36 11,67 12,00

Multi-Media Integer .NET (MPix/s) 9,36 9,40 9,79 10,00

Multi-Media Float .NET (MPix/s) 2,52 2,60 2,76 2,81

Multi-Media Double .NET (MPix/s) 4,79 4,87 5,10 5,18

Dhrystone Java (GIPS) 34,14 37,62 37,23 36,65

Whetstone Java (GLOPS) 13,00 13,68 12,23 14,00

Multi-Media Integer Java (MPix/s) 6,92 7,14 7,35 7,00

Multi-Media Float Java (MPix/s) 5,18 5,30 6,30 5,46

Multi-Media Double Java (MPix/s) 4,84 5,00 5,00 5,07

38

3.4.3 Testes com o controlador de memória

Esses testes foram feitos com a largura de banda da memória utilizando-se

operações com inteiros e pontos flutuantes. Nos testes Integer Memory Bandwidth e

Float Memory Bandwidth, com números inteiros e números float (pontos flutuantes),

respectivamente, quanto maior o resultado, melhor é a eficiência.

Não houve diferença significativa entre os sistemas anfitriões testados. O

sistema anfitrião Windows mostrou melhor desempenho, em ambos os testes, com o

virtualizador VMWare; ao passo que o sistema anfitrião Linux teve melhor resultado

com o virtualizador VirtualBox, como está descrito na Tabela 7 e representado na

Figura 11.

5,60

5,80

6,00

6,20

6,40

6,60

6,80

VIRTUALBOX VMWARE VIRTUALBOX VMWARE

WINDOWS LINUX

Integer Memory Bandwidth B/F SSE2/128 (GB/s) Float Memory Bandwidth B/F SSE2/128 (GB/s)

Figura 11: Controle de memória

WINDOWS LINUX

VIRTUALBOX VMWARE VIRTUALBOX VMWARE

Integer Memory Bandwidth B/F SSE2/128 (GB/s) 6,53 6,07 6,62 6,00

Float Memory Bandwidth B/F SSE2/128 (GB/s) 6,52 6,08 6,63 6,00

Tabela 7: Resultado dos testes de controle de memória

39

A tabela 7 mostra em seus respectivos tempos os resultado dos testes em

cada máquina virtual.

3.4.4 Testes de Disco

No teste de disco, verificou-se uma leitura sequencial através do disco,

utilizando ou não o sistema de arquivo do sistema em operação, e verificou-se,

também, o teste de acesso randômico no disco. No primeiro caso -leitura sequencial

utilizando ou não o sistema de arquivo – quanto maior o resultado do teste, melhor a

eficiência do sistema anfitrião. Já no teste de acesso randômico do disco, quanto

menor o resultado, melhor a eficiência do sistema anfitrião. O teste de disco foi bem

interessante porque cada sistema anfitrião– Linux e Windows – apresentou uma

particularidade.

No teste de leitura sequencial, tanto com sistema de arquivo ou não,

utilizando o virtualizador VirtualBox, o sistema anfitrião Linux foi um pouco melhor,

com 89,00 MB/s contra 80,63 MB/s do Windows (sem sistema de arquivo) e 146,00

MB/s do Linux, contra 110,56 MB/s do Windows (com sistema de arquivo). No

entanto, no acesso randômico, com o virtualizador VirtualBox, sem sistema de

arquivo, o desempenho do Linux é melhor (7,46ms contra 9,52 msdo Windows);

enquanto o desempenho do Windows foi superior, no caso de ter sistema de

arquivo, com 96µs contra 236 µsdo Linux.

Na utilização do virtualizador VMWare Workstation, sem sistema de arquivo,

o Windows apresentou desempenho melhor, tanto no teste leitura sequencial como

na leitura randômica: 104,65 MB/s contra 43,17 MB/s do Linux (sequencial); e 7,80

ms contra 7,80 ms do Linux. Já no teste com sistema de arquivo, o Linux foi

altamente superior ao Windows, seja no teste sequencial (347% melhor) quanto

randômico (3993% melhor). No primeiro caso (sequencial), o Linux obteve 368,22

MB/s contra 82,24 MB/s do Windows; no segundo (randômico), o Linux apresentou

171 µs contra 7000 µs do Windows.

Os detalhes dos testes podem ser conferidos na Tabela 8 e visualizados na

Figura 12.

40

0,00

50,00

100,00

150,00

200,00

250,00

300,00

350,00

400,00

Physical Disks Read Drive

Score (MB/s)

Physical Disks Read Random

Access Time (ms)

File Systems Drive Score (MB/s) File Systems Random Access

Time (µs)

WINDOWS VIRTUALBOX WINDOWS VMWARE LINUX VIRTUALBOX LINUX VMWARE

Figura 12: Testes de disco

WINDOWS LINUX

VIRTUALBOX VMWARE VIRTUALBOX VMWARE

Physical Disks Read Drive Score (MB/s) 80,63 104,65 89,00 43,17

Physical Disks Read Random Access Time (ms) 9,52 7,80 7,46 7,87

File Systems Drive Score (MB/s) 110,56 82,24 146,00 368,22

File Systems Random Access Time (µs) 96 7000 236 171

Tabela 8: Resultado dos testes de disco

A tabela 8 mostra em seus tempos respectivos, os resultados dos testes em

cada máquina virtual.

3.4.5 Teste de Rede Local

O teste de rede local foi realizado em todas as máquinas virtuais que

utilizavam Windows. Fez-se os testes de largura de banda (Data Bandwidth) e

latência na rede local (Data Latency). Nos testes de largura de banda, quanto maior

o resultado obtido melhor a eficiência do sistema anfitrião; já nos testes de latência,

quanto menor o resultado obtido, melhor a eficiência do sistema anfitrião. Pode-se

conferir na Tabela 9 assim como na Figura 13 que, nos testes realizados com os dois

virtualizadores (VirtualBox e VWWARE), o sistema anfitrião Linux teve melhor

desempenho.

41

Foi interessante verificar o sofrível desempenho do virtualizador VirtualBox

nos testes de rede: no teste Data Bandwidth, teve 8,24 MB/s contra 68,84 MB/s do

VMWare (>60,6 MB/s); e no teste Data Latency 332 µs contra 115 µs,

respectivamente (<217 µs).

2,9259,91

8,24

68,84

588

174

332

115

0,00

100,00

200,00

300,00

400,00

500,00

600,00

700,00

VIRTUALBOX VMWARE VIRTUALBOX VMWARE

WINDOWS LINUXData Bandwidth (MB/s) Data Latency (µs)

Figura 13: Redes locais

WINDOWS LINUX

VIRTUALBOX VMWARE VIRTUALBOX VMWARE

Data Bandwidth (MB/s) 2,92 59,91 8,24 68,84

Data Latency (µs) 588 174 332 115

Tabela 9: Resultado do teste de rede local.

A tabela 9 mostra em seus respectivos tempos os resultados dos testes em

cada máquina virtual.

3.5 COMPACTAÇÃO DE ARQUIVOS

A compactação de arquivos foi realizada com 1.2 GB de dados (Para efetuar

o teste de compactação de arquivos, reuniu-se documentos do Word, Powerpoint e

Pdf, perfazendo 1,2 GB de dados. Esses dados foram usados tanto no sistema

operacional Windows quanto Linux. No Windows foi utilizado o software PeaZip 4.1

X64 no formato 7z, com nível de compressão normal e com método de compressão

LZMA2, que utiliza multithreading. No Linux, foi utilizado o software p7zip 9.04 X64

no formato 7z com a syntax "a -t7z -r -m0=LZMA2 -mx=5". Utilizou-se o comando

42

time do Linux para verificar o tempo do processo. Quanto menor o tempo utilizado,

melhor o desempenho no teste.

0 20 40 60 80 100 120 140 160

Windows VirtualBox 146

Windows VmWare 154

Linux VirtualBox 149

Linux VmWare 145

Tempo em segundos

Figura 14: Compactação de arquivo usando Windows

A Figura 14, acima, mostra os testes de compactação de arquivos tendo o

Windows como máquina virtualizada. Nesse caso, com o VirtualBox, o sistema

anfitrião Windows teve melhor desempenho, com 3 segundos a menos que o

sistema anfitrião Linux. No caso do WMWare, o sistema anfitrião Linux foi 9

segundos mais rápido que o Windows no mesmo teste.

Na Figura 15, a seguir, mostra-se os testes de compactação de arquivos

tendo o Linux como máquina virtualizada. O resultado foi similar ao teste

apresentado no gráfico 10. Com o VirtualBox, o sistema anfitrião Windows foi 2

segundos mais rápido que o Linux, e, com o VMWare, o Linux superou o Windows

em 159 segundos.

Portanto, nota-se que com o VirtualBox houve uma pequena perda nos dois

sistemas chegando no máximo a 3%. Já com VMware Workstation, os testes

apresentaram maior diferença no Windows foram 6% e no Linux a inacreditáveis

53%.

43

0 50 100 150 200 250 300 350

Windows VirtualBox 150

Windows VmWare 304

Linux VirtualBox 152

Linux VmWare 145

Tempo em Segundos

Figura 15: Compactação de arquivo usando Linux

3.6 CODIFICAÇÃO DE ÁUDIO

Foi realizada a codificação de áudio com o CD do João Bosco “Dá licença

meu senhor”, extraído as faixas para WAV com Windows Media Player e feito a

mesclagem das dez primeiras faixas, com o software WAV Joiner, chegando a um

arquivo de 457 MB. O software de codificação de audio LAME foi usado tanto no

Windows, na versão 3.99.1; quanto no Linux, na versão 3.98.4; ambos de 64 bits. A

syntax do comando foi "-b 160 --nores". Ressalta-se que o resultado do teste é

melhor quando menor o tempo em segundos para codificar o mesmo arquivo de

áudio.

Na Figura 16, verificou-se que com o VirtualBox nos testes na plataforma

Windows, o sistema anfitrião Linux compactou os 457 GB em 92 segundos, isto é, o

Linux. foi 8% mais rápido que o sistema anfitrião Windows, o qual fez a mesma

tarefa em 99 segundos. Com o virtualizador VMware Workstation, na plataforma

Windows, o sistema com anfitrião Linux foi significativamente melhor, compactando o

áudio em 91 segundos contra 116 segundos do sistema anfitrião Windows,

superando-o em 22%.

44

0 20 40 60 80 100 120

Windows VirtualBox 99

Windows VmWare 116

Linux VirtualBox 92

Linux VmWare 91

Tempo em Segundos

Figura 16: Codificação de áudio usando Windows

A Figura 17 abaixo, demonstra que com o VirtualBox ,nos testes na

plataforma Linux, o sistema anfitrião Windows compactou os 457 GB em 123

segundos contra os 144 segundos do sistema anfitrião Linux para realizar a mesma

tarefa. Com o virtualizador VMware Workstation, na plataforma Linux, o sistema com

anfitrião Linux foi discretamente melhor, compactando o arquivo de áudio em 118

segundos contra 124 segundos do sistema anfitrião Windows.

45

0 20 40 60 80 100 120 140 160

Windows VirtualBox 123

Windows VmWare 124

Linux VirtualBox 144

Linux VmWare 118

Tempo em Segundos

Figura 17: Codificação de áudio usando Linux

3.7 CODIFICAÇÃO DE VÍDEO

Esse teste foi realizado codificando-se um vídeo com 9 minutos utilizando o

DVD ANIMATRIX com os capítulos “O segundo renascer partes I e II” extraído com o

software DVDDecypter 3.5.4.0 tendo o tamanho de 643 MB que continha somente

vídeo sem áudio, este convertido para o formato XVid. No vídeo, utilizou-se o

software AviDemux 2.5.4, no Linux, e VirtualDub 1.9.11, no Windows. A versão do

codec XVid utilizado no Windows foi a 1.3.2; e 1.2.4 no Linux. Nas duas plataformas,

utilizou-se o contêiner AVI, sendo os programas configurados para operar em

multithreading. Quanto menor o tempo em segundos para codificar um vídeo sem

áudio de mesmo tamanho, melhor é o resultado quanto ao desempenho do sistema

anfitrião.

Na Figura 18, verifica-se que com o VirtualBox, nos testes na plataforma

Linux, o sistema anfitrião Linux compactou os 643 MB de vídeo sem áudio em 496

segundos contra 410 segundos do sistema anfitrião Windows, que teve, portanto, um

desempenho bem superior. Por outro lado, com o virtualizador VMware Workstation

46

na plataforma Linux, o sistema com anfitrião Linux foi melhor, compactando o

mesmo arquivo em 363 segundos contra 389 segundos do sistema anfitrião

Windows.

0 50 100 150 200 250 300 350 400 450 500

Windows VirtualBox 410

Windows VmWare 389

Linux VirtualBox 496

Linux VmWare 363

Tempo em Segundos

Figura 18: Codificação de vídeo no Linux

Nos testes na plataforma Windows, a Figura 19 mostra que o sistema

anfitrião Linux teve um desempenho melhor com os dois virtualizadores. Com o

VirtualBox, o Linux compactou os 643 MB GB em 606 segundos e o sistema anfitrião

Windows fez o mesmo trabalho em 706 segundos. Com o virtualizador VMware

Workstation, na plataforma Windows, o sistema com anfitrião Linux foi ainda

superior, compactando o vídeo em 600 segundos contra 708.

Constatou-se, assim, que, no VirtualBox, com os mesmos testes para

plataforma Linux, que o sistema anfitrião Windows foi melhor em 18% sobre o

sistema Linux; já nos testes na plataforma Windows, o Linux como anfitrião foi

melhor 15%. Quando no VMware Workstation, em ambas as plataformas testadas, o

47

sistema anfitrião Linux foi melhor chegando a superar o sistema anfitrião Windows

em 16% nos testes realizados na plataforma Windows.

0 100 200 300 400 500 600 700 800

Windows VirtualBox 706

Windows VmWare 708

Linux VirtualBox 606

Linux WmWare 600

Tempo em Segunds

Figura 19: Codificação de vídeo usando Windows

48

4 CONSIDERAÇÕES FINAIS

A análise do desempenho dos sistemas anfitriões Windows Server 2008 x64

e Linux CentOS 6 x64, rodando virtualizadores VirtualBox e VMWare Workstation,

com as máquinas virtuais Windows Server 2008 x64 e Linux Debian 6.0.3 x64,

mostrou resultados interessantes.

Nos testes do LMBench, o sistema anfitrião Linux apresentou desempenho

superior na maioria dos casos, com ambos os virtualizadores. Apenas no teste de

latência de comunicação local que o sistema anfitrião Windows apresentou melhor

performance com o VirtualBox.

O mesmo ocorreu quando os testes do software Sandra foram aplicados, em

que o sistema anfitrião Linux mostrou maior eficiência nos testes de processamento

da CPU, com máquinas virtuais, de disco e de Rede Local. O sistema anfitrião

Windows comportou-se discretamente melhor no teste com o controlador de

memória utilizando VMWare; com o VirtualBox o sistema anfitrião Linux teve melhor

desempenho também nesse teste.

No teste de compactação de arquivos, com o VirtualBox, o sistema anfitrião

Windows foi o melhor; já no WVWare, de novo sobressai o sistema anfitrião Linux.

NTanto nos testes de codificação de áudio quanto nos testes de codificação de

vídeo, o sistema anfitrião Linux somente foi superado quando utilizado o virtualizador

VirtualBox com a máquina virtualizada Linux.

De forma geral, então, percebeu-se a expressiva superioridade do

desempenho do sistema anfitrião Linux na quase totalidade dos testes realizados

com os virtualizadores escolhidos.

Para quem utiliza máquinas virtuais no âmbito profissional, testes como os

realizados neste trabalho, ajudam a otimizar o uso dos recursos utilizados e dar

maior celeridade na condução das tarefas.

Entretanto, vale ressaltar que esse tipo de análise requer conhecimento

especializado em manipulação de máquinas virtuais, na operação de sistemas

operacionais de servidor e de programas de benchmark. Além disso, recomenda-se

que seja utilizada uma máquina robusta (como sistemas com quad cores ou

melhores, 8 GB para que possa ser alocado memória suficiente para as maquinas

virtualizadas não havendo lentidão pela falta da mesma e discos de 7200 rpm ou

49

SSD para que o desempenho do disco não atrapalhe o teste) e softwares originais,

o que demandam recursos financeiros substantivos.

Para além dos aspectos materiais, que, embora difíceis, foram superados,

este estudo exigiu dedicação, empenho, e muitas horas ao lado da máquina,

zelando pela boa realização dos testes.

Pelo exposto, reconhece-se, principalmente, a validade do exercício que se

tornou a prova final para ser recebido o título de bacharel em Ciência da

Computação.

Ademais, diante das questões apresentadas e discutidas, espera-se ter

contribuído para uma maior reflexão diante deste tema, que outros trabalhos possam

ser elaborados para um vasto enriquecimento de ideias e objetivos para aqueles que

escolherem seguir neste campo de estudos.

50

REFERÊNCIAS

BARUCHI, João Henrique. Comparativo entre ferramentas de virtualização. Trabalho de Conclusão de Curso. Faculdade de Jaguariúna. 2008.

CHIUEH , N.; BARHAM, P.. Máquinas virtuais – 2006. Disponível em: http://www.guiadohardware.net/dicas/maquinas-virtuais-introducao.html - Acesso em: 10 mai. 2009

COELHO, Fábio Azeredo. CALZAVARA, Gustavo Santos. DI LUCIA, Ricardo. Trabalho de Redes de Computadores I – Professor Otto Duarte. Disponível em <http://www.gta.ufrj.br/grad/09_1/versao-final/virtualizacao/conceitos%20chave.html>. Acesso em 5/11/2011.

JONES, M. T. Virtual Linux. An overview of virtualization methods, architectures, and implementations. IBM: 2006. Disponível em: <http://www-128.ibm.com/developerworks/linux/library/l-linuxvirt/?ca=dgr-lnxw01Virtual-Linux>.Acesso em: 1º. ago. 2009.

LAUREANO, M. Máquinas Virtuais e emuladores. Conceitos,Técnicas e Aplicações. (e-Book). São Paulo, 2006. Novatec Editora.

LOPES, A.; LAZARINO, O. VMWARE Inside in INFO n. 248/2006 (pag. 126-127) Revista INFO, São Paulo – 2006.

MICROSOFT, 2007 Microsoft Virtual Server 2005. Disponível em: http://www.microsoft.com/downloads/ Acessado em: 30/10/2011

NETWORK WORLD 2007 Os oito principais desafios da virtualização em data centers Disponível em: httphttp://pt.scribd.com/doc/68899889/virtualizacao-de-datacenter/ - Acessado em: 23/10/2011

SCALZO, Bert et all. Database Benchmarking Practical methods for Oracle & SQL Server. Kittrell, NC: RAMPANT, 2007.

SILVA, Diogo Ezídio et all. Virtualização como alternativa para ambiente de servidores. Trabalho de Conclusão de Curso. Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial – FATESG. Goiânia, 2008.

TANENBAUM, A. S.; WOODHULL, A. S. Sistemas Operacionais Projeto e Implantação 2. Edição (e-Book) Bookman Editora, Rio de Janeiro – 2006.

51

TORRES, G.; LIMA, C. Como Funciona a Tecnologia de Virtualização da Intel - 2007 Disponível em: http://www.clubedohardware.com.br/artigos/1144 - Acessado em: 25/10/2011

52

APÊNDICES

53

APÊNDICE A: SAÍDA DE EXECUÇÃO DO LMBENCH COM O SISTEMA ANFITRIÃO WINDOWS NA MÁQUINA VIRTUALBOX

Process fork+/bin/sh -c: 9352.2366 microseconds

integer bit: 0.39 nanoseconds

integer add: 0.20 nanoseconds

integer mul: 0.11 nanoseconds

integer div: 8.17 nanoseconds

integer mod: 9.67 nanoseconds

int64 bit: 0.37 nanoseconds

uint64 add: 0.20 nanoseconds

int64 mul: 0.26 nanoseconds

int64 div: 17.17 nanoseconds

int64 mod: 15.98 nanoseconds

float add: 1.31 nanoseconds

float mul: 2.03 nanoseconds

float div: 8.03 nanoseconds

double add: 1.43 nanoseconds

double mul: 2.53 nanoseconds

double div: 12.09 nanoseconds

float bogomflops: 4.57 nanoseconds

double bogomflops: 7.49 nanoseconds

integer bit parallelism: 3.08

integer add parallelism: 3.12

integer mul parallelism: 4.00

integer div parallelism: 1.84

integer mod parallelism: 2.41

int64 bit parallelism: 3.00

int64 add parallelism: 3.01

int64 mul parallelism: 4.00

int64 div parallelism: 1.41

int64 mod parallelism: 1.51

float add parallelism: 3.67

float mul parallelism: 5.42

float div parallelism: 1.58

double add parallelism: 3.55

double mul parallelism: 6.98

double div parallelism: 1.15

File /var/tmp/lmbench/XXX write bandwidth: 53575 KB/sec

Pagefaults on /var/tmp/lmbench/XXX: 17.6683 microseconds

UDP latency using localhost: 170.7215 microseconds

TCP latency using localhost: 174.0352 microseconds

RPC/udp latency using localhost: 145.2927 microseconds

RPC/tcp latency using localhost: 190.2122 microseconds

connect: Cannot assign requested address

connect: Cannot assign requested address

54

APÊNDICE B: SAÍDA DE EXECUÇÃO DO LMBENCH COM O SISTEMA ANFITRIÃO WINDOWS NA MÁQUINA VMWARE

Process fork+/bin/sh -c: 2807.0000 microseconds

integer bit: 0.50 nanoseconds

integer add: 0.25 nanoseconds

integer mul: 0.15 nanoseconds

integer div: 10.33 nanoseconds

integer mod: 10.84 nanoseconds

int64 bit: 0.50 nanoseconds

uint64 add: 0.25 nanoseconds

int64 mul: 0.35 nanoseconds

int64 div: 22.16 nanoseconds

int64 mod: 21.69 nanoseconds

float add: 1.51 nanoseconds

float mul: 2.01 nanoseconds

float div: 7.78 nanoseconds

double add: 1.51 nanoseconds

double mul: 2.51 nanoseconds

double div: 11.80 nanoseconds

float bogomflops: 6.05 nanoseconds

double bogomflops: 10.12 nanoseconds

integer bit parallelism: 2.87

integer add parallelism: 3.01

integer mul parallelism: 4.00

integer div parallelism: 1.85

integer mod parallelism: 2.26

int64 bit parallelism: 2.56

int64 add parallelism: 2.98

int64 mul parallelism: 4.00

int64 div parallelism: 1.41

int64 mod parallelism: 1.24

float add parallelism: 3.00

float mul parallelism: 4.01

float div parallelism: 1.34

double add parallelism: 3.00

double mul parallelism: 5.00

double div parallelism: 1.20

File /var/tmp/lmbench/XXX write bandwidth: 83081 KB/sec

Pagefaults on /var/tmp/lmbench/XXX: 5.1249 microseconds

UDP latency using localhost: 20.2098 microseconds

TCP latency using localhost: 44.3202 microseconds

RPC/udp latency using localhost: 33.8821 microseconds

RPC/tcp latency using localhost: 56.2373 microseconds

TCP/IP connection cost to localhost: 52.2959 microseconds

55

APÊNDICE C: SAÍDA DE EXECUÇÃO DO LMBENCH COM O SISTEMA ANFITRIÃO LINUX NA MÁQUINA VIRTUALBOX

Process fork+/bin/sh -c: 8975.3937 microseconds

integer bit: 0.37 nanoseconds

integer add: 0.18 nanoseconds

integer mul: 0.11 nanoseconds

integer div: 7.48 nanoseconds

integer mod: 7.87 nanoseconds

int64 bit: 0.37 nanoseconds

uint64 add: 0.18 nanoseconds

int64 mul: 0.25 nanoseconds

int64 div: 16.07 nanoseconds

int64 mod: 15.77 nanoseconds

float add: 1.14 nanoseconds

float mul: 1.48 nanoseconds

float div: 5.69 nanoseconds

double add: 1.10 nanoseconds

double mul: 1.83 nanoseconds

double div: 8.64 nanoseconds

float bogomflops: 4.42 nanoseconds

double bogomflops: 7.37 nanoseconds

integer bit parallelism: 2.88

integer add parallelism: 3.11

integer mul parallelism: 4.00

integer div parallelism: 1.85

integer mod parallelism: 2.28

int64 bit parallelism: 2.57

int64 add parallelism: 3.01

int64 mul parallelism: 4.01

int64 div parallelism: 1.41

int64 mod parallelism: 1.24

float add parallelism: 3.02

float mul parallelism: 4.00

float div parallelism: 1.34

double add parallelism: 3.01

double mul parallelism: 5.01

double div parallelism: 1.20

UDP latency using localhost: 194.0536 microseconds

TCP latency using localhost: 252.2860 microseconds

RPC/udp latency using localhost: 224.4395 microseconds

RPC/tcp latency using localhost: 266.9244 microseconds

TCP/IP connection cost to localhost: 55.8020 microseconds

56

APÊNDICE D: SAÍDA DE EXECUÇÃO DO LMBENCH COM O SISTEMA ANFITRIÃO LINUX NA MÁQUINA VMWARE

integer bit: 0.36 nanoseconds

integer add: 0.18 nanoseconds

integer mul: 0.11 nanoseconds

integer div: 7.35 nanoseconds

integer mod: 7.74 nanoseconds

int64 bit: 0.36 nanoseconds

uint64 add: 0.18 nanoseconds

int64 mul: 0.25 nanoseconds

int64 div: 15.80 nanoseconds

int64 mod: 15.42 nanoseconds

float add: 1.08 nanoseconds

float mul: 1.43 nanoseconds

float div: 5.56 nanoseconds

double add: 1.07 nanoseconds

double mul: 1.79 nanoseconds

double div: 8.38 nanoseconds

float bogomflops: 4.32 nanoseconds

double bogomflops: 7.18 nanoseconds

integer bit parallelism: 2.87

integer add parallelism: 3.09

integer mul parallelism: 4.00

integer div parallelism: 1.85

integer mod parallelism: 2.27

int64 bit parallelism: 2.56

int64 add parallelism: 3.00

int64 mul parallelism: 4.00

int64 div parallelism: 1.41

int64 mod parallelism: 1.24

float add parallelism: 3.01

float mul parallelism: 4.02

float div parallelism: 1.34

double add parallelism: 3.01

double mul parallelism: 5.02

double div parallelism: 1.21

File /var/tmp/lmbench/XXX write bandwidth: 243084 KB/sec

UDP latency using localhost: 15.2951 microseconds

TCP latency using localhost: 86.3218 microseconds

RPC/udp latency using localhost: 19.4773 microseconds

RPC/tcp latency using localhost: 48.1200 microseconds

TCP/IP connection cost to localhost: 54.2828 microseconds