Analise de desempenho_compactadores_asti_2011

19

Click here to load reader

description

Trabalho de análise de desempenho com compactadores e algoritmos de compactação

Transcript of Analise de desempenho_compactadores_asti_2011

Page 1: Analise de desempenho_compactadores_asti_2011

Faculdade de Tecnologia de Carapicuíba

Avaliação de Desempenho em Sistemas Computacionais

Estudo de Desempenho de Compactadores

Carapicuíba2011

Page 2: Analise de desempenho_compactadores_asti_2011
Page 3: Analise de desempenho_compactadores_asti_2011

Integrantes

José Eduardo Evaristo 1430431013165

Luiz Paulo 1430431011044

Marcel Bragança 1430431023337

Marco Couto Ferreira 1430431013178

Marcos Cassemiro 1430431013179

Saulo Heber Moreira Marques 1430431013194

Tayan Lima 1430431013195

Vanessa Carvalho Santos 2090158

Page 4: Analise de desempenho_compactadores_asti_2011

Objetivo

O objetivo do trabalho é descrever através da demonstração de resultados obtidos por testes, uma metodologia para a Análise de Desempenho, bem como fixar conceitos dados em sala de aula sobre uma avaliação comparativa de desempenho entre dois objetos que possuem uma única finalidade.

Page 5: Analise de desempenho_compactadores_asti_2011

Introdução

O objetivo do trabalho é demonstrar uma Análise de Desempenho usando uma metodologia de comparação entre testes realizados em alguns algoritmos de compactação e divulgar os resultados obtidos, bem como fixar conceitos dados em sala de aula sobre uma avaliação comparativa de desempenho entre dois objetos que possuem uma única finalidade.

Para alcançar este objetivo, o grupo decidiu realizar uma analise de desempenho comparativa entre diferentes algoritmos de compactação. Ao demonstrar a peculiaridade de cada um e ao comparar os resultados obtidos poderemos traçar um perfil geral de cada algoritmo.

Page 6: Analise de desempenho_compactadores_asti_2011

Compactadores

Compactadores de arquivos são softwares que têm por objetivo a compressão de dados de um arquivo, utilizando diversas técnicas de algoritmos de compressão de dados, como por exemplo a redução de sequência de bits repetidos.

Uma das possíveis classificações que se aplicam aos compactadores, são a compressão com perda e sem perda.

sem perdas (lossless) - quando os dados obtidos são idênticos aos originais, se aplicam à como textos, programas de computador, planilhas eletrônicas, etc., onde uma pequena perda de dados acarreta o não funcionamento ou torna os dados incompreensíveis.

Um texto com letras trocadas, uma planilha com valores faltantes ou inexatos, ou um programa de computador com comandos inválidos são coisas que não desejamos e que podem causar transtornos. Algumas imagens e sons precisam ser reproduzidos de forma exata, como imagens e gravações para perícias, impressões digitais, etc

com perdas - em alguns casos, permite-se que ocorram pequenas perdas de dados, que não sejam significativas, em geral, ao digitalizarmos informações como fotografias, sons e filmes, podemos considerar algumas perdas que não seriam percebidas pelo olho ou ouvido humano. Como os dados obtidos não são idênticos aos originais, pois perderam informações irrelevantes, o método é considerado então com perdas (lossy).

Page 7: Analise de desempenho_compactadores_asti_2011

Um aspecto importante dos compactadores é a taxa de compactação, que pode ser definida como o poder de compactação de um algoritmo para compactar um determinado arquivo.

Exemplo: Quando o tamanho de um arquivo cai pela metade, após a compactação, dizemos que a taxa de compactação foi de 2:1 (Dois para um).

Tipos de Análise

Existem basicamente 3 técnicas de analise de desempenho que são:

Modelagem: é muito simples este tipo de analise porque elimina completamente detalhes irrelevantes ao teste já que abstrai todos os detalhes irrelevantes a analise, neste processo deve-se identificar os principais componentes do sistema e suas iterações para então realizar o estudo da avaliação

Simulação: é a técnica mais usada para analise de desempenho devido a facilidade de realizar os testes, é também uma técnica muito barata para prever o desempenho de um sistema antes/depois de alguma modificação. Neste tipo de testes devemos nos atentar bastante na especificação do software e nos modelos estatísticos pois isso poderá influenciar no resultado final

Experimentação: Neste tipo de analise é capturado o desempenho do sistema em dado momento de produção ao longo do tempo deve-se possuir dados estatísticos suficientes para fornecer metricas sobre o desempenho do sistema,

Page 8: Analise de desempenho_compactadores_asti_2011

também pode ser usado softwares especializados em benchmark que tem seus próprios algoritmos para analisar o desempenho

Hibridos: há casos onde pode-se utilizar a combinação

de duas ou mais técnicas de avaliação para alcançar um resultado mais apurado, estes casos particulares devem ser escolhidos cuidadosamente com base no tipo de sistema a ser analisado e no tipo de resultado esperado.

Definição do Sistema

Tendo em vista que o laboratório foi criado de acordo com uma situação real do cotidiano ocorrida dentro de uma empresa no qual um dos integrantes do grupo é funcionário, uma máquina exatamente idêntica á que é usada no dia-a-dia foi criada, aproveitando inclusive o mesmo ambiente operacional. Tal escolha foi providencial para que os resultados e argumentos fossem suficientes para uma análise eficiente e imparcial.

Configuração da máquina utilizadaSistema operacional: Debian Squeeze 64 Bits rodando em uma máquina virtual VmWare Esx 4.1. O sistema foi instalado apenas em modo texto e todos os comandos utilizados foram executados via console. Apenas o serviço de ssh para conexão remota

Processador: 4 Vprocessadores (virtuais) Intel Xeon com 2.67 GHz

Memória RAM: 12 GB

Discos: Storage IBM com discos SAS de 10K operando com sistema de redundância dos discos em Raid5.

Serviços

• Compactação dos arquivos em (lzma, zip, gzip2 e rar);

Page 9: Analise de desempenho_compactadores_asti_2011

• Tempo e Throughput da compactação dos arquivos em variadas extensões bem como compactação de diretórios e subdiretórios;

Saídas

• Arquivos compactados;

MétricasMetricas são criterios usados para quantificar o desempenho do sistema, neste trabalho escolhemos os seguintes itens para serem usados:

• Tamanho final dos arquivos;• Taxa e Tempo de compactação de descompactação;• Consideraremos apenas os testes com resultado correto

sem falhas;

ParâmetrosParametros são pontos criticos do sistema, ou seja, determinados pontos do sistema que podem afetar a analise de desempenho.Os parametros que nós elegemos foram: O Ambiente em que foi executado os testes, (Cpu, Memória, Throughput do Disco, Sistema Operacional) e a carga de trabalho que estava em uso na máquina, neste caso a máquina estava dedicada aos nossos testes.

Page 10: Analise de desempenho_compactadores_asti_2011

Cargas de TrabalhoSeguindo a linha de se adequar ao cotidiano da empresa já citada, foram usados arquivos reais da própria empresa. É importante salientar que tais arquivos não continham informações sigilosas e o eventual acesso por parte de terceiros não comprometeria em nada as operações da empresa.

Arquivos utilizados para os testes de compactaçãoArquivo de LOG (texto puro): usamos um arquivo de log de acessos á internet com exatos 567 MB. Este arquivo é exatamente um dos arquivos extraídos de um servidor de produção que roda o serviço de proxy squid. Diariamente, um arquivo como este é copiado para um segundo servidor (idêntico ao usado nos testes de laboratório) que tem a função de compactar e armazená-lo por no mínimo doze meses.

Arquivos de texto com tamanhos minúsculos: diariamente, milhares de arquivos de texto com tamanhos variados entre 3 KB e 10 KB. É devidamente conhecido que realizar operações com uma grande quantidade de arquivos de tamanho individual pequenos, custa um tempo maior e consequente maior uso do hardware do que a mesma operação com arquivos de tamanhos maiores. Para a realização dos testes foram utilizados arquivos gerados em um dia de baixo movimento na empresa, que rendeu exatos 1129 arquivos, totalizando um espaço em disco de 5410 KB.

Assim como os arquivos de log, durante a rotina diária da empresa, estes arquivos são transferidos para outro servidor e posteriormente compactados e armazenados para futuras consultas.

Diretórios com grande hierarquia de subdiretórios: Os pequenos arquivos descritos no item anterior normalmente são armazenados em uma grande cadeia hierárquica de diretórios. É também de conhecimento que operações com um grande número hierárquico de diretórios faz uso de uma razoável fatia de recursos do sistema.

Arquivo de imagem de disco ISO: Por se tratar de um arquivo já compactado, este arquivo de tamanho de 51 MB foi usado como apoio para explorar á fundo o potencial básico de cada algoritmo de compactação testado.

Page 11: Analise de desempenho_compactadores_asti_2011

Resultado da análise

Algoritmo ZIPZIP é um formato de compactação de arquivos muito difundido pela Internet. Atualmente o formato já tem compatibilidade nativa com vários sistemas operacionais, como o Windows da Microsoft, que já permite compactar e descompactar arquivos no formato ZIP sem o uso de softwares adicionais (externos) instalados.

Vantagem

O Zip implementa um dos algoritimos de compactação mais leves do mercado, por esse motivo ele demanda menor consumo de CPU e realiza os serviços de compactação e descompactação com maior agilidade.

Desvantagens

Por ser um compactador mais leve e mais rapido, o Zip possui uma capacidade de compressao menor.

Testes

Foram realizados testes de compactação de descompactação com arquivos dos seguintes tipos: arquivo em texto, imagem ISO, diretórios com sub-níveis com tamanhos pequenos e grandes.

Os comandos utilizados foram:Compactação -> time zip add “arquivo”

Descompactação -> time unzip “arquivo”

Resultados

Texto

Tamanho inicial 567 MBCompactado: 71,01 MBTempo de Compactação: 14,93 segTempo de descompactação: 5,19 seg

Imagem ISO

Tamanho inicial 51 MBCompactado: 46,83 MB

Page 12: Analise de desempenho_compactadores_asti_2011

Tempo de Compactação: 2,65 segTempo de descompactação: 2,60 seg

Diretório

Tamanho inicial 420 KBCompactado: 7 KBTempo de Compactação: 0,26 segTempo de descompactação: 0,004 seg

Arquivos XML

Tamanho inicial 5410 KBCompactado: 460 KBTempo de Compactação: 0,11 segTempo de descompactação: 0,043 seg

Algoritmo RAR.RAR é um formato fechado de compactação de arquivos muito difundido pela Internet.A compressão RAR foi desenvolvida por Eugene Roshal (daí vem o nome RAR: Roshal ARchive)

Vantagens

• Alta taxa de compressão.• Suporte a arquivos grandes (suporta até 8.589.934.591 GB,

tamanho não suportado pelos arquivos.• Capacidade de gerar vários volumes de um mesmo arquivo

(divide o arquivo RAR em partes menores). • Suporte a vários idiomas (inclusive o idioma português de

portugal e português brasileiro). • Suporte a recursos importantes como recuperação de dados

(restaura dados fisicamente danificados).• Bloqueio de dados (o arquivo não pode ser modificado) e

modo sólido (os arquivos são comprimidos especialmente em uma única corrente de dados).

Page 13: Analise de desempenho_compactadores_asti_2011

Desvantagens

• Não existe versão Free.

Principais Softwares e distribuições

O principal software de compactação/descompactação de arquivos no Windows no formato RAR é o WinRAR.O principal software de compactação/descompactação de arquivos no Linux formato RAR é o UnRAR.

Avaliação de desempenho

Para a avaliação de desempenho do RAR foi utilizado a versão: 3.0.3.1 com as seguintes cargas:

Texto

Tamanho inicial 567 MBCompactado: 45,25 MBTempo de Compactação: 101,95 segTempo de descompactação: 6,04 seg

Imagem ISO

Tamanho inicial 51 MBCompactado: 46 MBTempo de Compactação: 35,4 segTempo de descompactação: 1,41 seg

Diretório

Tamanho inicial 420 KBCompactado: 3 KBTempo de Compactação: 0,016 segTempo de descompactação: 0,033 seg

Arquivos XML

Tamanho inicial 5410 KBCompactado: 254 KBTempo de Compactação: 0,611 segTempo de descompactação: 0,05 seg

Page 14: Analise de desempenho_compactadores_asti_2011

Considerações finais

O RAR mostrou um otimo desenpenho na compactação e descompactção de arquivos, principalmente arquivos do tipo texto onde ouve uma redução de 92,06% no tamanho final.

BZIP2É um algoritmo e um software compactador de arquivos,

onde sua licença é livre e de código aberto (open source) muito utilizado em distribuições Linux. Também é utilizado em sistemas operacionais Windows, porém não tão popular entre os usuários desse sistema que mais utilizam os algoritmos WinRar e WinZip.

Vantagem

O algoritmo bzip2 é mais eficiente que o gzip e zip, pois deixa o arquivo compactado com um tamanho bem menor, sendo uma vantagem para pessoas que possui conexões lentas e precisam realizar o transporte dessa informação na internet.

Desvantagem

Sua desvantagem é que o processo usado para compactar e descompactar arquivos e diretórios consome mais recursos de processamento.

Testes

Realizamos os testes de compactação e descompactação dos arquivos que estavam em ambiente real em um servidor

Page 15: Analise de desempenho_compactadores_asti_2011

remoto. Nos testes foram usados arquivo em texto, imagem ISO, diretórios com sub-níveis com tamanhos pequenos e grandes. Os comandos usados foram:

Compressão:

Time bzip2 nome_arquivo

Descompressão:

Time bunzip2 nome_arquivo

Resultados

Arquivo em texto:Tamanho inicial do arquivo: 567 MBCompactado: 45,6 MBTempo de Compactação: 60,4segTempo de Descompactação: 20seg

Imagem ISO:

Tamanho inicial do arquivo: 51 MBCompactado: 471 MBTempo de Compactação: 10,8segTempo de Descompactação: 11seg

Diretórios:

Tamanho inicial do arquivo: 420 KBCompactado: 3 KTempo de Compactação: 0,2segTempo de Descompactação: 0,001seg

Arquivos XML:

Tamanho inicial do arquivo: 5410 KBCompactado: 239 KB

Page 16: Analise de desempenho_compactadores_asti_2011

Tempo de Compactação: 1,3segTempo de Descompactação: 0,1seg

Page 17: Analise de desempenho_compactadores_asti_2011

LZMA

Descrição

LZMA (Algoritmo Lempel-Ziv-Markov) é uma versão melhorada dos algoritmos de compressão de dados LZ77. Desenvolvido para melhorar o nível de compressão, mantendo alta taxa de compressão e baixo gasto de memória.

O algoritmo LZ77 foi um dos algoritmos de compressão de dados desenvolvidos por Abraham Lempel e Jacob Ziv em 1977, juntamente com o outro algoritmo de compressão LZ78 publicado em 1978. Nos primeiros artigos publicados eles eram conhecidos por LZ1 e LZ2 respectivamente e só depois ganharam o ano de sua publicação em suas siglas. Este algoritmo LZ77 se baseia na utilização das partes que já foram lidas de um arquivo como um dicionário, substituindo as próximas ocorrências das mesmas seqüências de caracteres pela posição (absoluta ou relativa) da sua última ocorrência. Para limitar o espaço de busca e de endereçamento necessário, as ocorrências anteriores são limitadas por uma "janela deslizante" (do inglês sliding window) que tem tamanho fixo e "desliza" sobre o arquivo, delimitando o início e fim da área onde serão buscadas as ocorrências anteriores. O tamanho desta janela é um dos fatores primordiais para se ajustar a performance desse algoritmoPara demonstrar o funcionamento, abaixo ilustramos o algoritmo LZ77 com um exemplo da compressão da cadeia A_ASA_DA_CASA, usando janela de tamanho 8 e buffer de look-ahead de tamanho 4.

Janela Buffer Restante do arquivo Tupla emitidaA_AS A_DA_CASA (0,0,A)

A _ASA _DA_CASA (0,0,_)

A_ ASA_ DA_CASA (1,1,S)

A_AS A_DA _CASA (3,2,D)

A_ASA_D A_CA SA (2,2,C)

ASA_DA_C ASA (7,3,EOF)

Temos então 6 tuplas cada tupla ocupa 15 bits (4 para a posição dentro da janela, 3 para o tamanho e 8 para o caractere no final), perfazendo 90 bits. Comparado com a cadeia original de 104 bits (13 bytes) a compressão não é muito boa, mas para

Page 18: Analise de desempenho_compactadores_asti_2011

arquivos maiores o tamanho da janela pode ser ajustado, assim como o tamanho do buffer, conseguindo taxas de compressão bem melhores.

Vantagens

Sendo uma evolução do algoritmo LZ77 ele traz melhores taxas de compactação e desempenho geral pois permite ajuste na janela deslizante que controla o nivel de compactação

Desvantagens

Por enquanto somente o compactador 7zip utiliza, portanto ainda não é muito difundido

Desempenho

Observamos que ele oferece na média uma boa taxa de compressão para todas as cargas de trabalho utilizadas, porém resultando em um tempo de compactação sensivelmente acima da média dos algoritmos testados.

Page 19: Analise de desempenho_compactadores_asti_2011

ConclusãoConcluímos que a analise de desempenho é imprescindível para que possamos compreender o desempenho de qualquer sistema, pois através de uma metodologia de analise de desempenho revela-se itens que ficam oculto no sistema e só se tornam visíveis através dos processos de analise de desempenho. Concluímos também que num estudo de analise de desempenho é imprescindível também escolher com cuidado as devidas métricas, entradas, parâmetros e etc pois isso influenciará completamente os resultados deixando de ser imparcial.