Você está na página 1de 33

UNIVERSIDADE FEDERAL DO PARÁ

FACULDADE DE COMPUTAÇÃO

ANÁ LISE E DESEMPENHO


DE SISTEMAS
Prof. Msc. Felipe Brito
Número (91) 98140-0437
E-mail: felipeandrecb@hotmail.com
Experimentação ou Aferição
• Muitas vezes o alto nível de abstrações usadas na
avaliação de desempenho via modelagem não
permite que o sistema seja retratado de forma
fidedigna.
• Dependendo do contexto, esse grau de precisão
tem importância fundamental, o que pode exigir
o uso de outra técnica, como a experimentação
ou aferição.
Motivação para Aferir
• A motivação pelo uso da técnica de aferição
normalmente se dá quando a exigência por um
resultado mais preciso é fator preponderante.
• Entretanto, é importante frisar que:
• aferir implica haver disponibilidade do sistema, ou
de um protótipo dele.
• E que a realização de um processo de medição
pode eventualmente causar instabilidade no
sistema.
Motivação para Aferir
• Um exemplo bastante comum ocorre quando se tem
a necessidade de uma expansão iminente em rede de
computadores instalada e em produção.
• Nesse caso, pode ser necessário que a administração
da empresa em questão requeira projeções, com certo
grau de confiabilidade, antes de autorizar qualquer
investimento.
• Uma das soluções criadas para se realizar medições
dentro de um critério padronizado e confiável
chama-se benchmarking.
Benchmarking
• Basicamente, realizar experimentações ou aferir um
sistema de forma confiável implica instalar
medidores de desempenho.
• Estes medidores podem ser tanto de hardware quanto
de software.
• E se utilizar de processos chamados de benchmarks,
para a coleta de dados e apresentação dos resultados.
Benchmarking
• As métricas dos benchmarks computacionais podem
medir rapidez (em qual velocidade a carga de trabalho foi
completada), vazão (quantas cargas de trabalho por
unidade de tempo foram medidas) e etc.
• Um benchmark é um ponto de referência que permite um
comparativo de desempenho de acordo com um conjunto
de critérios preestabelecidos.
• Em computação, benchmark é o ato de executar um
programa de computador, um conjunto de programas ou
outras operações, a fim de avaliar o desempenho relativo
de um objeto, normalmente executando uma série de testes
padrões e ensaios nele.
Benchmarking
• O termo "benchmark" é também comumente usado
para os próprios programas (de benchmarking)
desenvolvidos para executar o processo.
• Normalmente, benchmarking é associado com
avaliação de características de performance de um
hardware de computador.
• Por exemplo, a performance da operação de ponto
flutuante de uma CPU, mas há circunstâncias em que
a técnica também é aplicável a software.
• Benchmarks de software são feitos, por exemplo, em
compiladores ou sistemas de gerenciamento de banco
de dados.
Benchmarking
• Em essência, o termo benchmark utilizado na
computação tem o mesmo significado do benchmark
utilizado no mundo corporativo, já que visa a
comparação de mecanismos, processos, objetos e
resultados.
• Benchmarks são desenvolvidos para usar um
determinado tipo de comportamento de um ou mais
componentes ou sistema.
Benchmarking
• Com a evolução das arquiteturas de computadores,
ficou cada vez mais difícil comparar a performance
de diferentes sistemas de computação somente
olhando suas especificações.
• Por isso, testes foram desenvolvidos para serem
feitos em diferentes sistemas, permitindo que esses
resultados possam ser comparados entre as diferentes
arquiteturas.
Benchmarking
• Por exemplo, enquanto os processadores Pentium 4
geralmente operam a frequências de clock mais altas
que os processadores AMD Athlon XP.
• Isso não necessariamente se traduz como maior
poder computacional.
• Em outras palavras, um processador AMD Athlon
XP mais lento, quanto a frequência de clock, pode ter
um desempenho tão bom nos testes de benchmark
quanto um processador Intel Pentium 4 operando a
uma frequência mais alta.
Benchmarking
• Existem diversas instituições dedicadas
exclusivamente a definir metodologias e soluções de
aferição dentro de uma margem de confiabilidade
bastante segura.
• Um dos exemplos é a Standard Performance
Evaluation Corporation (SPEC).
• A empresa mantém uma vasta suite de softwares de
benchmarking dentre os quais se destacam os CPU,
webservers, virtualização, estações gráficas e etc.
• Os resultados obtidos são disponibilizados no
endereço http://www.spec.org e podem ser usados
como parâmetro comparativo.
Benchmarking
• As interpretações das informações obtidas nesse tipo
de medição costumam ser extremamente úteis às
instituições, principalmente por refletirem um
cenário real.
• Com base nelas, pode-se, por exemplo, aplicar
políticas diferenciadas para seus QoS (Quality of
service), aumentando ou restringindo recursos de
grupos de usuários conforme se faça necessário
Benchmarking
• Um grande desafio ao se medir o desempenho
usando a técnica de aferição é minimizar os impactos
que eventualmente o próprio mecanismo de medição
venha a causar no sistema, distorcendo por vezes o
resultado.
• Por exemplo, se o objetivo é medir o atraso fim a fim
em uma rede de computadores e o dispositivo de
medição introduzir algum atraso nessa rede, então é
importante analisar se esse incremento não irá
comprometer o resultado como um todo.
Benchmarking
• Um exemplo de software de benchmark gratuito e
bastante popular é o PC Wizard.
• Nele, as informações de seu computador são
coletadas e, opcionalmente, comparadas com a de
outros computadores.
Benchmarking
• Figura a seguir mostra o resultado de um benchmark
de processador realizado em um computador com
processador Intel core i7 4500u de 1800 MHz.
• Os números resultantes, apresentados na área
superior, são expressos em milhões de instruções por
segundo (MIPS) e de milhões de operações de ponto
flutuante por segundo (MFLOP).
Benchmarking
• O botão Compare results pode ser usado para uma
comparação com dados armazenados no banco de
dados.
• A figura a seguir mostra urna comparação com um
processador Intel Core i5 2450m.
• Ainda é possível inserir um certo grau de
transparência para sobrepor as imagens de ambos,
permitindo urna melhor percepção da diferença.
Benchmarking
• Além dos testes de desempenho de CPU, o PC
Wizard disponibiliza testes de memória, gráficos,
rede etc.
Benchmarking
• É importante que um benchmark possua quatro
características: ser relevante (representativo) para a
aplicação alvo à qual representa.
• Ser portável entre diferentes arquiteturas e
configurações de sistemas computacionais.
• Ser escalável, podendo ser executado desde
pequenos computadores pessoais até grandes
mainframes
• E ser simples de entender, caso contrário este perderá
a sua credibilidade.
Carga de trabalho
• O objetivo principal de um benchmark é a avaliação
de desempenho de sistemas computacionais.
• Basicamente, quer-se medir quão rápido um dado
sistema computacional efetua um determinado
conjunto de tarefas.
• Entretanto, a eficiência de um sistema computacional
está diretamente relacionada aos fatores que
degradam o seu desempenho.
Carga de trabalho
• Esta degradação, provocada pela sobrecarga de
execução dos processos ativos no sistema, limita a
velocidade na qual estas tarefas são executadas.
• O termo processo, largamente utilizado na área de
sistemas operacionais, consiste basicamente em um
programa em execução.
• Isto ocorre porque cada um destes processos ativos
gera uma sobrecarga de execução específica, a qual
constitui-se da quantidade de recursos
computacionais utilizados e do consequente tempo
gasto durante o uso destes recursos.
Carga de trabalho
• A avaliação de desempenho através da técnica de
benchmark implica necessariamente na
implementação e posterior execução de um conjunto
de programas em um dado sistema computacional.
• Deste modo, ao se avaliar o desempenho, insere-se
uma sobrecarga de execução específica, gerada pelo
próprio benchmark.
• A esta sobrecarga de execução dá-se o nome de carga
de trabalho do benchmark.
Carga de trabalho
• Exemplos
• Em uma rede de computadores, a carga de trabalho é
o número de pacotes que a rede deve transmitir.
• Em um sistema de banco de dados, a carga é o
número de requisições de consulta.
• Em um computador, a carga pode ser o número de
instruções que a CPU tem que processar ou o número
de acessos à memória solicitados.
Carga de trabalho
• Nos estudos de avaliação de desempenho, a escolha
da carga de trabalho correta é crucial para garantir
que os resultados sejam aceitáveis.
• A escolha de uma carga de trabalho inapropriada ou
não representativa pode levar o estudo de
desempenho a ser considerado inaceitável ou
incorreto.
• Logo, a carga de trabalho deve ser representativa de
cenários correspondentes aos cenários de uso reais,
tanto em termos de quantitativos quanto qualitativos.
Carga de trabalho
• Suponha o sistema de e-commerce, onde o estudo de
atendimento de requisições prevê que ele atenderá
100 clientes por hora, porém uma carga real seria de
400 requisições por hora.
• O resultado do estudo diria que o sistema está
atendendo com grande velocidade de resposta
• Mas no uso real, o servidor estaria sobrecarregado e
atendendo com velocidade de resposta insatisfatória,
sendo ela muito abaixo do mínimo esperado.
Carga de trabalho
• Da mesma forma, a escolha de uma carga muito
acima das expectativas levará a um resultado
superdimensionado.
• Porém, dependendo do objetivo do estudo de
desempenho, esta segunda opção poderá ser a
escolhida.
• No caso do servidor de e-commerce, o estudo que
usa como carga 1000 clientes por hora mostrará que
o servidor terá velocidade satisfatória.
Carga de trabalho
• A carga de trabalho qualitativamente incorreta
também afeta o estudo de desempenho no momento
em que se escolhe tipos diferentes de carga do que as
que realmente serão encontradas no sistema.
• Por exemplo, no caso de um servidor de jogos on-
line.
• Se o avaliador escolher como carga de trabalho
usuários com perfil de usuários de bibliotecas on-line
ele terá um dimensionamento e resultados
completamente diferentes do correto para sua
avaliação.
Carga de trabalho
• Nos estudos de avaliação de desempenho, a escolha
da carga de trabalho correta é crucial para garantir
que os resultados sejam aceitáveis.
• A escolha de uma carga de trabalho inapropriada ou
não representativa pode levar o estudo de
desempenho a ser considerado inaceitável ou
incorreto.
Carga de trabalho
• A carga de traba1ho de um benchmark engloba todos
os processos criados ou acionados para execução,
diretamente ou indiretamente, pelo benchmark.
• Adicionalmente à carga de trabalho do benchmark,
pode-se ter processos independentes, os quais geram
uma sobrecarga de execução particular, chamada
carga de trabalho externa ao benchmark.
• Estes processos independentes, ao utilizarem
recursos computacionais, também degradam o
desempenho do sistema computacional como um
todo.
Carga de trabalho
• Assim, os processos ativos no sistema podem ser
divididos em dois grupos: processos pertencentes à
carga de trabalho do benchmark e processos
independentes.
• A sobrecarga de execução gerada por estes dois
grupos caracteriza a carga de trabalho total existente
em um determinado sistema computacional
Exercício
• O que é Aferição?
• O que é Benchmark?
• Qual finalidade de se realizar testes de Benchmark?
• O que é carga de trabalho do benchmark?
• O que é carga de trabalho externa ao benchmark?

Você também pode gostar