• No results found

3 Teori

3.3 Retorikk og retoriske begreper

Para auxiliar na visualização e análise dos dados coletados, uma ferramenta foi construída. Esta ferramenta possibilita a geração de gráficos para as diversas métricas coletadas a partir dos recursos do ambiente. As métricas de elasticidade propostas também podem ser visualizadas por meio da ferramenta, e dessa maneira auxiliar na análise da elasticidade. 5.5.2.1 Estrutura da Aplicação

A aplicação foi desenvolvida com a linguagem de programação Java. Ela é baseada na leitura de arquivos texto com as informações coletadas a partir do ambiente. Assim é possível a leitura de arquivos texto gerados por meio dos mecanismos propostos na arquitetura. Esses arquivos registram dados do ambiente, como utilização de CPU e memória, além de dados de aplicações, como tempo de resposta de requisições.

A ferramenta está dividida em três pacotes: arquivos de log, gráficos e utilitários, além da interface gráfica do usuário. Os logs de dados coletados do ambiente e das métricas propostas estão distribuídos em um conjunto de arquivos texto, que podem ser configurados ou estendidos sempre que um novo dado precisar ser coletado ou uma nova métrica for criada. Os arquivos são: alocação, elasticidade, média de consumo de CPU, máquinas virtuais (um para cada máquina virtual) e servidor web (um para cada máquina virtual). Cada um desses arquivos possui uma estrutura própria lida pela aplicação. O pacote de gráficos possui um conjunto de classes correspondente a cada tipo de gráfico utilizado pela aplicação. Os utilitários são uma biblioteca de funções para manipulação de datas e arquivos texto. A interface gráfica permite que o usuário escolha o experimento a ser lido, correspondente a um conjunto de arquivos de log, a seleção da métrica a ser visualizada e os painéis de gráficos disponíveis. Os arquivos de loglidos pela ferramenta possuem a seguinte estrutura descrita na Tabela 5.1:

Tabela 5.1: Estrutura dos arquivos de log lidos pela ferramenta

Arquivo Estrutura

Alocação Data da coleta | Mantém (m), Aumenta (a), ou Diminui (d) | Quantidade de máquinas virtuais alocadas

Média de Consumo de CPU Data da coleta | Média do valor do percentual de CPU em todas as máquinas virtuais

Máquina Virtual Data da coleta | Percentual de utilização de CPU pelo usuário | Percentual de utilização de CPU pelo sistema | Percentual de CPU livre | Quantidade de memória total | Quantidade de memória utilizada | Quantidade de memória livre | Quantidade de KB lidos em disco | Quantidade de KB escritos em disco | Quantidade de pacotes que chegam em KB | Quantidade de pacotes que saem em KB

Servidor web Data da coleta | IP de origem | URL | Tempo levado para processar a requi- sição em milissegundos

Elasticidade Data da coleta | Estresse da Qualidade na Nuvem | Tensão dos Recursos Alocados | Tensão dos Recursos Demandados | Elasticidade dos Recursos Alocados | Elasticidade dos Recursos Demandados | Elasticidade da De- manda

5.5.2.2 Extensibilidade

A ferramenta permite a flexibilização na leitura de arquivos texto de log, bastando o usuário implementar uma classe da estrutura definida no arquivo texto. Mecanismos para leitura de arquivos já estão disponibilizados para o usuário, bastando que se projete o arquivo texto baseado em colunas, onde cada coluna possui uma informação coletada do ambiente, e separadas por um “|” (arquivos CSV).

Para a inclusão de uma nova métrica, é necessário projetar um novo arquivo de log a ser lido pela ferramenta com dados do ambiente ou com métricas geradas automaticamente pela consolidação de dados. A seguir, uma classe para uma nova métrica deve ser criada, com a leitura do arquivo de log correspondente, e configurar os parâmetros do gráfico a ser exibido. Para a criação de novos tipos de gráfico, o usuário deve utilizar gráficos da biblioteca JFreeChart1, e adaptar a classe correspondente à métrica desejada. Por fim, a disponibilização da métrica na interface do usuário deve ser implementada, para permitir sua seleção.

5.5.2.3 Métricas

A ferramenta já possibilita a visualização de diversas métricas coletadas do ambi- ente, conforme descritas na Tabela 5.2. Além disso, algumas métricas são disponibilizadas a partir de dados coletados do ambiente, conforme uma fórmula de cálculo pré-definida, como o caso das métricas de elasticidade: Estresse da Qualidade da Nuvem (SQN), Tensão dos Recursos Demandados (TRD), Tensão dos Recursos Alocados (TRA), Elasticidade dos Recursos Deman- dados (ERDi), Elasticidade dos Recursos Alocados (ERAi) e Elasticidade da Demanda (EDi).

Tabela 5.2: Métricas disponibilizadas pela ferramenta

Métrica Descrição

CPU Percentual de utilização de CPU do usuário, do sistema e ocioso. Variando de 0% a 100%

Memória Quantidade de memória livre, quantidade de memória total e quantidade de memória utilizada pelo usuário. Variando de 0 até a quantidade de memória disponível em GBytes

Rede Pacotes recebidos e pacotes enviados. Em KB/s

Disco Quantidade de dados lidos e quantidade de dados escritos. Em KB/s. Tempo de Resposta Tempo de resposta das aplicações. Em milissegundos (ms)

Média Média de utilização de CPU de todas as máquinas virtuais, em valores percentuais Alocação Alocação das máquinas virtuais ao longo do tempo, conforme necessidade de adição

ou remoção de recursos

Elasticidade Estresse da Qualidade da Nuvem (SQN), Tensão dos Recursos Demandados (TRD),

Tensão dos Recursos Alocados (TRA), Elasticidade dos Recursos Demandados (ERDi),

Elasticidade dos Recursos Alocados (ERAi) e Elasticidade da Demanda (EDi)

Todas as métricas citadas são visualizadas de maneira individual por máquina vir- tual, podendo o usuário selecionar qual máquina virtual deseja visualizar os dados. Adicional- mente, é possível verificar algumas métricas em paralelo. Para todas as máquinas virtuais é possível se visualizar em paralelo CPU, memória, rede, disco e tempo de resposta. Alocação e

média são métricas consolidadas, portanto são do ambiente como um todo. Tensão e estresse são visualizadas em conjunto, para facilitar a análise, assim como ERAi, ERDie EDi.

5.5.2.4 Telas

A ferramenta desenvolvida possui basicamente um conjunto de painéis de visuali- zação de gráficos, e outro painel para seleção das métricas e seleção dos arquivos de log de um determinado experimento, conforme Figura 5.5. Demais telas de utilização da ferramenta, com a visualização das métricas podem ser visualizadas no Apêndice B.

Figura 5.5: Tela típica para uma análise de desempenho com a média de utilização de CPU de todas as máquinas virtuais, a alocação conforme os limiares definidos na infraestrutura, as métricas de elasticidade e o tempo de resposta das requisições de um experimento

6 EXPERIMENTOS

Este capítulo descreve os experimentos realizados para a validação do framework FOLE e das métricas propostas. Dois experimentos foram projetados. O primeiro experimento realiza uma análise de desempenho em uma nuvem privada com o apoio do FOLE e utilizando todas as métricas propostas de maneira detalhada (Seção 6.1). O segundo experimento executa uma avaliação da elasticidade em uma nuvem híbrida, também com o apoio do FOLE e com as métricas de elasticidade (Seção 6.2).