1. Faculdade de Tecnologia de Carapicuíba
Avaliação de Desempenho em Sistemas Computacionais
Estudo de Desempenho de Compactadores
Carapicuíba
2011
2.
3. 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
4. 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.
5. 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.
6. 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).
7. 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,
8. 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 utilizada
Sistema 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);
9. • 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étricas
Metricas 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âmetros
Parametros 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.
10. Cargas de Trabalho
Seguindo 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ção
Arquivo 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.
11. Resultado da análise
Algoritmo ZIP
ZIP é 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 MB
Compactado: 71,01 MB
Tempo de Compactação: 14,93 seg
Tempo de descompactação: 5,19 seg
Imagem ISO
Tamanho inicial 51 MB
Compactado: 46,83 MB
12. Tempo de Compactação: 2,65 seg
Tempo de descompactação: 2,60 seg
Diretório
Tamanho inicial 420 KB
Compactado: 7 KB
Tempo de Compactação: 0,26 seg
Tempo de descompactação: 0,004 seg
Arquivos XML
Tamanho inicial 5410 KB
Compactado: 460 KB
Tempo de Compactação: 0,11 seg
Tempo 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).
13. 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 MB
Compactado: 45,25 MB
Tempo de Compactação: 101,95 seg
Tempo de descompactação: 6,04 seg
Imagem ISO
Tamanho inicial 51 MB
Compactado: 46 MB
Tempo de Compactação: 35,4 seg
Tempo de descompactação: 1,41 seg
Diretório
Tamanho inicial 420 KB
Compactado: 3 KB
Tempo de Compactação: 0,016 seg
Tempo de descompactação: 0,033 seg
Arquivos XML
Tamanho inicial 5410 KB
Compactado: 254 KB
Tempo de Compactação: 0,611 seg
Tempo de descompactação: 0,05 seg
14. 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
15. 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 MB
Compactado: 45,6 MB
Tempo de Compactação: 60,4seg
Tempo de Descompactação: 20seg
Imagem ISO:
Tamanho inicial do arquivo: 51 MB
Compactado: 471 MB
Tempo de Compactação: 10,8seg
Tempo de Descompactação: 11seg
Diretórios:
Tamanho inicial do arquivo: 420 KB
Compactado: 3 K
Tempo de Compactação: 0,2seg
Tempo de Descompactação: 0,001seg
Arquivos XML:
Tamanho inicial do arquivo: 5410 KB
Compactado: 239 KB
17. 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
algoritmo
Para 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 emitida
A_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
18. 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.
19. Conclusão
Concluí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.