Avaliação de desempenho em ambiente computacional voltado
para computação em nuvem com foco em aspectos de
planejamento de capacidade
Dionisio Leite1 , Maycon Peixoto1 , Marcos Santana1 , Regina Santana1
1
Universidade de São Paulo (USP)
Instituto de Ciências Matemática e de Computação (ICMC)
Departamento de Sistemas de Computação (SSC)
São Carlos – SP – Brasil
{dionisio,maycon,mjs,rcs}@icmc.usp.br
Abstract. Capacity planning in cloud computing environments provides a better
distribution of available resources and better service to the users of that environment. However, despite being a technical analysis, categorization and logic
distribution, it is not always used correctly, by using inaccurate generalizations about the environment that is being developed. Therefore, it is necessary to
know all the features and from this point to think the best configuration for the
environment. In this paper, is proposed a performance evaluation of resources in
a virtualized server suitable for cloud computing. Hypotheses have been raised
about the economic model adopted, the proportionality between resources and
virtual machines and the virtualization architecture adopted. The results showed
that the current economic model restricts some possibilities due to the amount
of physical resources. The results also showed there is no exact relationship of
proportionality between available resources and virtual machines. Regarding
to degradation, the factor more significant is the processor architecture and not
the management tools to virtual machines.
Resumo. O planejamento de capacidade em ambientes de computação em nuvem proporciona uma melhor distribuição dos recursos disponı́veis e melhor
atendimento aos usuários desse ambiente. No entanto, apesar de ser uma
técnica de análise, categorização e distribuição lógica, a mesma não é sempre utilizada de forma correta, por utilizar generalizações incorretas sobre o
ambiente que está sendo desenvolvido. Sendo assim, é necessário conhecer todos os recursos e a partir deste ponto pensar a melhor configuração para o
ambiente. Neste artigo, é proposta uma avaliação de desempenho sobre recursos virtualizados em um servidor adequado para computação em nuvem. Foram
levantadas hipóteses sobre o modelo econômico adotado, a proporcionalidade
entre recursos e máquinas virtuais e a arquitetura de virtualizadores adotados.
Os resultados apontaram que o modelo econômico atual restringe algumas possibilidades devido à quantidade de recursos fı́sicos. Verificou-se por meio dos
resultados que não há uma relação exata de proporcionalidade entre recursos
disponı́veis e máquinas virtuais. Com relação a degradação, o fator mais impactante é a arquitetura do processador e não as ferramentas de gerenciamento
de máquinas virtuais.
1. Introdução
Enquanto o desempenho e a capacidade dos sistemas aumentam, o custo desses sistemas diminui. Em razão desta ascensão tecnológica de hardware e ao sucesso da Web, os
recursos computacionais estão se tornando cada vez mais acessı́veis (financeiramente) e
com suporte a um alto desempenho, em comparação aos computadores de décadas atrás.
Esta evolução tecnológica possibilitou o surgimento de um novo paradigma denominado
computação em nuvem (Cloud Computing), cuja finalidade é disponibilizar recursos computacionais (processamento, armazenamento, software, etc.) como serviços, permitindo
o atendimento da demanda dos usuários [Armbrust et al. 2009].
Segundo Zhang et al. [Zhang et al. 2010], a computação em nuvem apresenta diversas caracterı́sticas atrativas, como baixo investimento em infraestrutura,
custo de operação, alta escalabilidade e fácil acesso. De acordo com Costa et al.
[Costa et al. 2011], as aplicações de e-ciência podem se beneficiar destas caracterı́sticas,
pois essas aplicações requerem grandes quantidades de processamento. No entanto, os
autores demonstram que a elasticidade não é aplicada em sua forma total, onde a quantidade de máquinas virtuais não pode ser alocada para a quantidade total de serviços,
pois há uma limitação de recursos computacionais. Baseado no estudo apresentado por
Costa et al. [Costa et al. 2011], propomos um conjunto de experimentações que visam
identificar qual nı́vel aceitável de desempenho entre máquinas virtuais executando concorrentemente. Para isso, além de verificar o desempenho com o aumento de máquinas
virtuais, será verificado o comportamento do desempenho com o aumento da quantidade
de núcleos das máquinas virtuais.
Dessa forma, a contribuição deste trabalho é identificar a melhor quantidade de
máquinas virtuais para um determinado host, verificar como o desempenho é afetado com
relação a diversas formas de concorrência por recursos e qual a proporção entre recursos
fı́sicos disponı́veis e serviços (taxa de degradação).
O restante deste artigo está organizado da seguinte forma: a Seção 2 apresenta os
conceitos relacionados ao ambiente de computação em nuvem e que são pertinentes a este
artigo. A Seção 3 apresenta os trabalhos relacionados à virtualização e ao planejamento
de capacidade. A Seção 4 apresenta os materiais utilizados e os métodos para a definição
dos conjuntos de experimentos. Os resultados obtidos são discutidos na Seção 5. As
conclusões são apresentados na Seção 6.
2. Computação em Nuvem
Utilizando uma analogia, um ambiente de computação em nuvem pode ser visto como
um conjunto de componentes que executam serviços sob demanda para os clientes, sendo
que estes não sabem onde os serviços são executados. Em razão disso é que os serviços
estão alocados nas nuvens.
O conceito de computação em nuvem se popularizou de maneira natural sem uma
definição formada. [Armbrust et al. 2009] afirmam que computação em nuvem é “uma
ideia antiga cujo tempo finalmente chegou”, citando o livro de [Parkhill 1966], o qual
tinha uma visão onde a computação seria oferecida como utilidade.
Dentre todas as definições de computação em nuvem, a definição do NIST
[Mell and Grance 2009] é a mais completa: “Computação em Nuvem é um modelo para
acesso conveniente, sob demanda, e de qualquer localização, a uma rede compartilhada de
recursos de computação (isto é, redes, servidores, armazenamento, aplicativos e serviços)
que possam ser prontamente disponibilizados e liberados com um esforço mı́nimo de
gestão ou de interação com o provedor de serviços”.
De acordo com o NIST [Mell and Grance 2009], a arquitetura de computação em
nuvem é composta de cinco caracterı́sticas essenciais:
• Autoatendimento sob demanda: um consumidor pode unilateralmente dispor
de capacidades computacionais, como processamento, armazenamento, tempo de
rede, conforme necessário e sem a necessidade de interação humana.
• Amplo acesso à rede: recursos são disponibilizados através da Internet e podem
ser acessados por clientes heterogêneos com qualquer capacidade de processamento (celulares, tablets, notebooks, etc).
• Agrupamento de recursos: os recursos de computação do provedor são agrupados para atender múltiplos consumidores, com recursos fı́sicos e virtuais (armazenamento, processamento, largura de banda) atribuı́dos dinamicamente e designados novamente de acordo com a demanda do consumidor.
• Elasticidade rápida: capacidades computacionais podem ser provisionadas e liberadas elasticamente, sendo que em alguns casos esta elasticidade é automática
para se ajustar à demanda de cada consumidor. Para o consumidor, as capacidades
provisionadas parecem ser ilimitadas e podem ser atribuı́das a qualquer momento.
• Medição de serviço: recursos da nuvem são controlados e otimizados automaticamente, sendo que o seu uso é medido a partir de um nı́vel de abstração apropriado
para cada tipo de serviço (contas de armazenamento, processamento, largura de
banda e usuários ativos). A utilização dos recursos pode ser monitorada e descrita
em relatórios, o que proporciona transparência tanto para o provedor quanto para
o cliente.
Dentre as caracterı́sticas enumeradas pelo NIST [Mell and Grance 2009], o autoatendimento sob demanda e a elasticidade são tópicos importantes relacionados ao desempenho que é ofertado aos usuários. Deste modo, essas caracterı́sticas são consideradas
neste artigo.
3. Trabalhos Relacionados
Dentro do ambiente de computação em nuvem há o conceito de virtualização, um assunto que é bastante discutido nos últimos anos como é apresentado por Sotomayor et al.
[Sotomayor et al. 2006], Koh et al. [Koh et al. 2007], Nance et al. [Nance et al. 2008],
Costa et al. [Costa et al. 2011], entre outros autores que discutem as vantagens e desvantagens da sua utilização.
Sotomayor et al. [Sotomayor et al. 2006] utilizam a virtualização para contornar
as limitações na manipulação de recursos fı́sicos em uma grade computacional. Os autores argumentam que, apesar da sobrecarga gerada, a virtualização é o melhor caminho
para a configuração e disponibilização de recursos na grade. O desempenho é melhorado
com o uso de cache das imagens das máquinas virtuais e o reuso das mesmas criando
assim templates de máquinas virtuais.
Na visão de White and Pilbeam [White and Pilbeam 2010], é importante observar
as limitações e exigências do host fı́sico que será utilizado para a virtualização. Os autores apresentam uma revisão dos métodos de virtualização e software de virtualização, e
discutem uma análise dos problemas de desempenho inerentes a cada uma dessas abordagens.
Como a virtualização é um conceito extremamente utilizado na computação em
nuvem, é importante levar em consideração os problemas de desempenho que essa técnica
pode causar. Além disso, na computação em nuvem o conceito de SLA (Service-Level
Agreement) é muito utilizado para a fixação de contratos, os quais garantem os nı́veis de
qualidade de serviço contratado pelos clientes.
Costa et al. [Costa et al. 2011] afirmam que muitas aplicações que possuem
alta demanda computacional poderiam se beneficiar da elasticidade de provedores de
computação em nuvem, pois, se determinada organização aloca um recurso para processar sua carga, esta pode, teoricamente, alocar N recursos paralelamente pelo mesmo
preço, paralelizando assim o seu processamento, o que diminui o tempo total da execução
da carga. Os resultados do trabalho mostram que os provedores atuais não permitem que
clientes aloquem muitos recursos em paralelo, pois pode ocorrer uma queda drástica no
desempenho do provedor devido ao uso concorrente de recursos.
Atualmente há dois planos de provisionamento de infraestrutura: reserva de recursos e reserva sob demanda. Chaisiri et al. [Chaisiri et al. 2012] mostram que a reserva de
recursos é mais barata que a reserva sob demanda pelo fato de ser estática e não precisar
lidar com variações de carga de trabalho.
Sendo assim, este artigo propõe uma análise sobre o provisionamento de recursos,
considerando o aumento do número de máquinas virtuais concorrentes e o aumento da
quantidade de recursos fı́sicos para as máquinas virtuais. Como o ambiente a ser analisado compreende a infraestrutura, o estudo apresentado nas próximas seções aborda a
virtualização que é aplicada na computação em nuvem e analisa os fatores de degradação
do ambiente a fim de melhorar o provisionamento de máquinas virtuais.
Segundo Koh et al. [Koh et al. 2007], as atuais técnicas de virtualização não proveem isolamento efetivo de desempenho entre as máquinas virtuais. Especificamente, a
virtualização exerce diferentes tipos de impacto sobre o desempenho conforme o tipo de
carga aplicada ao sistema.
Embora os hypervisores (monitores das máquinas virtuais) realizem o gerenciamento dos recursos de forma organizada, o comportamento de uma máquina virtual
(VM) pode afetar o desempenho de outra VM devido ao uso compartilhado de recursos no host fı́sico. Uma vez que os recursos são compartilhados pelas múltiplas VMs,
o desempenho obtido do sistema é imprevisı́vel, instável e pode se degradar em alguns
cenários [Gupta et al. 2006] [Koh et al. 2007] [Kesavan et al. 2010]. Ao passo que ocorre
o compartilhamento de recursos na infraestrutura da computação em nuvem, a interferência entre as VMs fica mais evidente. Por isso, há interferência entre as VMs executando no mesmo host fı́sico.
No caso especı́fico da CPU, a interferência pode acontecer quando o número de
núcleos fı́sicos é menor do que o número de VMs instanciadas ou quando existe o compartilhamento da cache L2 entre os núcleos da CPU. Múltiplas VMs estão ligadas ao gerenci-
amento de um único hypervisor e cada uma dessas VMs possui seu próprio ambiente sem
a visibilidade das outras. Assim, em razão do isolamento, uma VM não pode ser informada da carga de trabalho em execução em outra VM, sendo impossibilitada de determinar os efeitos da interferência no desempenho [Cherkasova et al. 2007] [Koh et al. 2007]
[Ongaro et al. 2008] [Boutcher and Chandra 2010].
De maneira geral, a interferência final é composta por vários fatores, tais como: o
tipo de serviço (representando a carga), o número de VMs instanciadas e o algoritmo de
escalonamento de VM do hypervisor. Observa-se que essa interferência pode levar a um
aumento do tempo de execução de um serviço, resultando em insatisfação dos usuários.
Neste contexto, a próxima seção trata da relação desses fatores, os quais influenciam as
variáveis de resposta de um ambiente.
4. Materiais e Métodos
Para a execução e análise dos experimentos, foi utilizada a metodologia de planejamento
de experimento fatorial completo apresentada por Jain [Jain 1991]. Nessa metodologia
de planejamento de experimentos é definido que, para um conjunto de experimentos, é
necessário definir os fatores fixos (fatores não variáveis desde o primeiro até o último
experimento) e os fatores variáveis (fatores que irão ser comparados nos experimentos).
Os experimentos foram conduzidos utilizando um único servidor PowerEdge
DELL T410 onde foram criadas as máquinas virtuais. Para prover homogeneidade aos experimentos, a configuração do servidor é a mesma tanto para o Xen quanto para o KVM.
Xen é um virtualizador free e Open Source que permite a execução de vários outros sistemas operacionais em uma mesma máquina. Já o KVM (Kernel-Based Virtual Machine) é
um virtualizador Open Source para Linux que utiliza o modelo de virtualização em nı́vel
de hardware implementando a técnica de virtualização completa com suporte as extensões
(IVT e AMD-V) de virtualização dos processadores.
Assim como a configuração do servidor, a configuração das máquinas virtuais
no servidor também é fixa. Para efeito, tanto de comparação quanto de reprodução, os
atributos fı́sicos do servidor são mostrados na Tabela 1.
Tabela 1. Configuração do Servidor
Memória
Processador
Número de cores
Número de threads
Cache L1
Cache L2
Cache L3
Disco
Sistema Operacional
12GB Memory (3x4GB)
1333MHz Dual Ranked RDIMMs Optimized
Intel Xeon X5660 HT 1333MHz
6
12
6 x 32 KB instruction caches 6 x 32 KB data caches
6 x 256 KB
12 MB
SATA de 500GB 3.5
Debian 6 Kernel 2.6.32-5 x86 64
Com as caracterı́sticas apresentadas na Tabela 1 é possı́vel reproduzir o ambiente
que foi utilizado para realizar as experimentações, bem como para fazer generalizações,
pois pode haver vários servidores com configurações semelhantes e que, provavelmente,
obterão os mesmo resultados apresentados neste artigo.
As configurações das máquinas virtuais bem como informações importantes,
como escalonadores, são apresentados na Tabela 2.
Tabela 2. Configuração das Máquinas Virtuais
Caracterı́sticas da VM
Memória
Processador
Disco
Sistema Operacional
Escalonador Processo Host
Escalonador Processo VM
Xen 4.0.1
512MB
VCPU (2.8 GHz)
8 GB
Ubuntu 10.04 kernel
2.6.32-33-server
Credit Scheduler
CFS
KVM 0.12.5
512MB
VCPU (2.8 GHz)
8 GB
Ubuntu 10.04
2.6.32-33-server
CFS
CFS
É importante observar que as configurações das máquinas virtuais são padrão, ou
seja, não foi realizada nenhum melhoria ou troca de caracterı́sticas do modelo padrão de
máquina virtual. A quantidade de experimentos é apresentada na Tabela 3.
Tabela 3. Experimentos realizados
Exp
1
2
3
4
5
6
7
8
9
10
11
VM XEN
1
2
4
6
8
10
12
1
2
1
2
VM KVM
1
2
4
6
8
10
12
1
2
1
2
Núcleos
1
1
1
1
1
1
1
6
6
12
12
Execuções
10
10
10
10
10
10
10
10
10
10
10
Como apresentado na Tabela 3, há experimentos considerando um núcleo por
máquina virtual, até o limite de cores do servidor, a fim de verificar qual o ponto de sobrecarga. Além disso, há a necessidade de verificar os ganhos de desempenho com um aumento de núcleos, do experimento 8 ao 11, visando identificar as melhores configurações
de desempenho e quais os nı́veis de sobrecarga obtidos.
Para uma correta avaliação e observação da utilização de recursos, foi utilizado
um benchmark que faz uso intensivo de CPU. Esse tipo de carga foi selecionado por ser
dependente apenas do processador, possibilitando fazer generalizações para outros tipos
de processadores, enquanto que outros tipos de carga como: entrada e saı́da (I/O) e sistema, dependendo dos periféricos (Disco SCSI - Small Computer System Interface e NAS
- Network-Attached Storage como exemplos de I/O e memórias com altas frequências),
podem ter resultados muito diferentes, impossibilitando generalizações.
O benchmark utilizado foi o SmallPT 1 . O SmallPt é um “renderizador” global de
imagens que faz uso estritamente de CPU.
5. Resultados
Os resultados obtidos refletem o desempenho obtido em um servidor preparado para
virtualização e computação de alto desempenho. Os experimentos foram elaborados para
verificar qual o desempenho obtido quando há concorrência de máquinas virtuais em um
mesmo servidor. Esse tipo de experimento é necessário para verificar como o planejamento de capacidade pode ser realizado em servidores com configurações semelhantes às
utilizadas nesta pesquisa.
1
http://www.kevinbeason.com/smallpt/
Normalmente utiliza-se a quantidade de recursos fı́sicos pela quantidade de
serviços executando, dado por P/N . O valor de P representa a quantidade de recursos
disponı́veis e o valor de N representa a quantidade de serviços executando. É necessário
verificar que a carga a ser representada por N deve ser a quantidade de máquinas virtuais,
pois elas devem fornecer aos seus usuários sua capacidade plena de processamento.
A Figura 1 apresenta o desempenho obtido nas máquinas virtuais e possibilita a
comparação de proporcionalidade oferecida pela relação de recursos por serviços.
Interval Plot of Tempo Resposta (s)
95% CI for the Mean
250
229,2
218
Tempo Resposta (s)
200
180,7 175,9
164 160,8
150
140,2
134,8
136
140 140
140 140
Xen KVM
2
Xen KVM
4
Xen KVM
6
141
100
50
0
VMM
Máquinas
Xen KVM
1
Xen KVM
8
Xen KVM
10
Xen KVM
12
Figura 1. Desempenho observado para carga estritamente CPU-Bound intra-host
De acordo com a Figura 1, a proporcionalidade sugerida por P/N não é obtida.
De acordo com nosso experimentos, não existe concorrência até o limite de seis máquinas
virtuais que, de acordo com a Tabela 1, é a quantidade de núcleos fı́sicos. É importante
ressaltar que o sistema operacional do servidor (host) trabalhar com doze núcleos e não
com seis. Essa caracterı́stica é determinante para a elaboração de um planejamento de
capacidade correto. A Figura 2 apresenta as diferenças obtidas entre as máquinas virtuais
em termos de porcentagem de desempenho.
70
64,0
60
Virtualizador
KVM
Xen
55,8
Desempenho
50
40
30
27,0
25,0
20
17,0
15,0
10
0,0
0
0
0,0
2
0,0
0,0
4
6
8
10
Número de Máquinas virtuais
12
Figura 2. Relação de desempenho entre as máquinas virtuais intra-host
Como pode ser observado na Figura 2, o limite de núcleos que o sistema operacional do servidor trabalha gera uma sobrecarga, em geral, entre 55,8% e 64% dependendo
do tipo de virtualizador. Essa relação de desempenho mostra que a proporcionalidade
entre quantidade de recursos fı́sicos e serviços executando (máquinas virtuais) não é o
melhor indicador para formular a capacidade geral do ambiente, uma vez que se pode
somar todos os recursos disponı́veis e assim fornecer serviços regulares de forma correta.
Outro ponto de destaque é o uso de escalabilidade horizontal, onde os recursos das
máquinas virtuais podem ser expandidos. O gráfico da Figura 3 apresenta os resultados
obtidos e as comparações entre
os resultados.
Interval
Plot of Tempo Resposta (s)
95% CI for the Mean
140
140,2 140,2
134,8 136
Tempo Resposta (s)
120
100
80
60
40
35,1
23,8
1 2
Xen
1 2
KVM
20
0
VM
Virtualizador
Núcleos
1 2
Xen
1 2
KVM
1
6
36,9
35,1
23,9
18,2
32,2
18,7
1 2
Xen
1 2
KVM
12
Figura 3. Índices de desempenho com configurações variadas de núcleos por
máquinas virtuais concorrentes
De acordo com o gráfico da Figura 3, o desempenho obtido foi melhor para as
quantidades maiores de núcleos virtuais (VCPU - Virtual CPU). A diferença entre 1VCPU
e 6VCPUs fica em torno de 83%, porém quando o limite é aumentado de 6VCPUS
para 12VCPUS o ganho de desempenho fica em torno de 22%. Nota-se que, para duas
máquinas virtuais, tanto com 6 como com 12 VCPUS, o desempenho não segue o mesmo
comportamento apresentado com apenas 1VCPU. Esse fato é devido à concorrência pelos
núcleos do servidor.
A diferença obtida entre as máquinas virtuais para 6VCPUS fica em torno de
47%,enquanto que, a diferença obtida com 12VCPUS fica em torno de 100%. Apesar
da degradação de desempenho apresentada para 1 e 2VMs, os tempos de resposta são
melhores que os obtidos quando a máquina virtual possui apenas 1VCPU.
Apesar das quantidades maiores apresentarem melhores ı́ndices de desempenho,
essa caracterı́stica torna o trabalho de planejamento de capacidade um desafio ainda
maior, pois não existe uma forma de prever qual será a carga exata de cada cliente. Como
o ambiente de nuvem propicia o aluguel de recursos computacionais por tempos determinados, o cliente pode não conhecer ao certo sua carga de trabalho e o provedor de serviços
pode não possuir uma regra para determinar a mesma.
Dessa forma, é possı́vel verificar porque atualmente não é válido fazer a relação
entre um recurso por mil horas ou mil recursos por uma hora, apesar de ser possı́vel fazer
essa relação. O modelo econômico praticado atualmente visa atender o máximo de clientes e a relação citada anteriormente precisa de formas de agendamento e realocação de
máquinas virtuais para fornecer os recursos fı́sicos adequados, isso acaba sendo inviável
para os fornecedores de computação em nuvem.
6. Conclusão
O planejamento de capacidade é uma ferramenta muito útil para o desenvolvimento
de ambientes computacionais de forma coerente e sem desperdı́cios de recursos. Essa
técnica, apesar de parecer trivial e até mesmo inútil para alguns casos, é fundamental atualmente, pois requer conhecimento do sistema de forma geral e quais os possı́veis pontos
de degradação do mesmo. Este artigo propôs identificar três pontos julgados importantes
no desenvolvimento de ambientes voltados para aplicações de alto desempenho: modelo
econômico atual, relação de proporcionalidade entre recursos e serviços e arquitetura dos
virtualizadores utilizados.
Nossa pesquisa identificou que o modelo econômico adotado em nuvem propõe
a auto configuração de recursos de acordo com a demanda dos serviços, no entanto essa
premissa não é adotada quando se trata de aplicações que requerem uma alta quantidade
de processamento. De acordo com os experimentos realizados, verificou-se que a quantidade de recursos para o uso concorrente de forma a não degradar o desempenho é o
limite de núcleos fı́sicos, no entanto há o uso de multithread que dá a falsa sensação de
mais processamento do que de fato há. Essa caracterı́stica pode levar a um planejamento
de capacidade de forma incoerente uma vez que devem ser observados a quantidade de
núcleos e não de threads disponı́veis.
Outro ponto é a proporcionalidade entre recursos disponı́veis e serviços executando. Foi comprovado que não há de fato uma proporção exata entre a relação
recursos/serviços. O planejamento nesse caso deve, em primeiro lugar considerar a quantidade fı́sica de recursos e em segundo lugar, considerar as caracterı́sticas pertinentes ao
processador utilizado, como tamanho de caches, quantidade de instruções e outras caracterı́sticas pertinentes ao processador em questão.
O terceiro ponto foi verificar que apesar de haver uma diferença de desempenho
entre os tipos de virtualizadores, na média o desempenho dos virtualizadores é o mesmo
(comprovado pelos resultados apresentados no gráfico de desempenho com os erros obtidos). Fica claro que a preocupação maior no desenvolvimento do ambiente de alto desempenho é com relação a arquitetura do processador e não nas tecnologias de gerência
de máquinas virtuais.
Referências
Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R. H., Konwinski, A., Lee, G.,
Patterson, D. A., Rabkin, A., Stoica, I., and Zaharia, M. (2009). Above the clouds:
A berkeley view of cloud computing. Technical Report UCB/EECS-2009-28, EECS
Department, University of California, Berkeley.
Boutcher, D. and Chandra, A. (2010). Does virtualization make diskscheduling passé?
SIGOPS Oper. Syst. Rev., 44(1):20–24.
Chaisiri, S., Lee, B., and Niyato, D. (2012). Optimization of resource provisioning cost
in cloud computing. Services Computing, IEEE Transactions on, 5(2):164–177.
Cherkasova, L., Gupta, D., and Vahdat, A. (2007). Comparison of the three cpu schedulers
in xen. SIGMETRICS Perform. Eval. Rev., 35(2):42–51.
Costa, R., Brasileiro, F., Lemos, G., and Mariz, D. (2011). Sobre a amplitude da elasticidade dos provedores atuais de computação na nuvem. Anais do XXIX Simpósio
Brasileiro de Redes de Computadores e Sistemas Distribuı́dos (SBRC2011). Sociedade
Brasileira de Computação (SBC), pages 221 – 234.
Gupta, D., Cherkasova, L., Gardner, R., and Vahdat, A. (2006). Enforcing performance
isolation across virtual machines in xen. In Proceedings of the ACM/IFIP/USENIX
2006 International Conference on Middleware, pages 342–362. Springer-Verlag New
York, Inc.
Jain, R. (1991). The art of computer systems performance analysis: techniques for experimental design, measurement, simulation, and modeling. Wiley, pages 44–56.
Kesavan, M., Gavrilovska, A., and Schwan, K. (2010). On disk i/o scheduling in virtual
machines. In Proceedings of the 2nd conference on I/O virtualization, pages 6–6.
USENIX Association.
Koh, Y., Knauerhase, R., Brett, P., Bowman, M., Wen, Z., and Pu, C. (2007). An analysis
of performance interference effects in virtual environments. In Performance Analysis
of Systems Software, 2007. ISPASS 2007. IEEE International Symposium on, pages
200 –209.
Mell, P. and Grance, T. (2009). The NIST Definition of Cloud Computing. Technical
report.
Nance, K., Bishop, M., and Hay, B. (2008). Virtual machine introspection: Observation
or interference? Security & Privacy, IEEE, 6(5):32–37.
Ongaro, D., Cox, A. L., and Rixner, S. (2008). Scheduling i/o in virtual machine monitors. In Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference
on Virtual execution environments, VEE ’08, pages 1–10, New York, NY, USA. ACM.
Parkhill, D. (1966). The challenge of the computer utility. Number p. 246 in The Challenge of the Computer Utility. Addison-Wesley Pub. Co.
Sotomayor, B., Keahey, K., and Foster, I. (2006). Overhead matters: A model for virtual
resource management. In Proceedings of the 2nd International Workshop on Virtualization Technology in Distributed Computing, page 5. IEEE Computer Society.
White, J. and Pilbeam, A. (2010). A survey of virtualization technologies with performance testing. Arxiv preprint arXiv:1010.3233.
Zhang, Q., Cheng, L., and Boutaba, R. (2010). Cloud computing: state-of-the-art and
research challenges. Journal of Internet Services and Applications, 1:7–18.
Download

Avaliacão de desempenho em ambiente computacional voltado